mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-10 19:14:16 +00:00
initialize http server
This commit is contained in:
parent
2febb13e04
commit
6b9cc0a3c5
@ -42,21 +42,38 @@ class StreamingServer {
|
|||||||
|
|
||||||
Sessions = new SessionsManager()
|
Sessions = new SessionsManager()
|
||||||
|
|
||||||
PublicStreamings = []
|
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.registerMediaServerEvents()
|
this.registerMediaServerEvents()
|
||||||
|
this.registerHTTPServerEndpoints()
|
||||||
|
|
||||||
// fire initization
|
// fire initization
|
||||||
this.initialize()
|
this.initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
registerMediaServerEvents = () => {
|
registerMediaServerEvents = () => {
|
||||||
Object.keys(this.mediaServerEvents).forEach(eventName => {
|
Object.keys(this.mediaServerEvents).forEach((eventName) => {
|
||||||
this.IMediaServer.on(eventName, this.mediaServerEvents[eventName])
|
this.IMediaServer.on(eventName, this.mediaServerEvents[eventName])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
registerHTTPServerEndpoints = () => {
|
||||||
|
Object.keys(this.httpServerEndpoints).forEach((route) => {
|
||||||
|
this.IHTTPServer.registerHTTPEndpoint({
|
||||||
|
route: route,
|
||||||
|
...this.httpServerEndpoints[route]
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
httpServerEndpoints = {
|
||||||
|
"/streams": {
|
||||||
|
method: "get",
|
||||||
|
fn: async (req, res) => {
|
||||||
|
return res.json(this.Sessions.publicStreams)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mediaServerEvents = {
|
mediaServerEvents = {
|
||||||
preConnect: async (id, args) => {
|
preConnect: async (id, args) => {
|
||||||
// this event is fired after client is connected
|
// this event is fired after client is connected
|
||||||
@ -77,6 +94,8 @@ class StreamingServer {
|
|||||||
|
|
||||||
// stop the session
|
// stop the session
|
||||||
this.Sessions.removeSession(id)
|
this.Sessions.removeSession(id)
|
||||||
|
|
||||||
|
this.Sessions.unpublishStream(id)
|
||||||
},
|
},
|
||||||
prePublish: async (id, StreamPath, args) => {
|
prePublish: async (id, StreamPath, args) => {
|
||||||
// this event is fired before client is published
|
// this event is fired before client is published
|
||||||
@ -87,20 +106,22 @@ class StreamingServer {
|
|||||||
key: streamingKey
|
key: streamingKey
|
||||||
})
|
})
|
||||||
|
|
||||||
console.log(streamingUserspace)
|
|
||||||
|
|
||||||
if (!streamingUserspace) {
|
if (!streamingUserspace) {
|
||||||
this.Sessions.removeSession(id)
|
this.Sessions.removeSession(id)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
PublicStreamings.push(id)
|
this.Sessions.publishStream({
|
||||||
|
id,
|
||||||
|
user_id: streamingUserspace.user_id,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initialize = async () => {
|
initialize = async () => {
|
||||||
await this.Db.connect()
|
await this.Db.connect()
|
||||||
this.IMediaServer.run()
|
this.IMediaServer.run()
|
||||||
|
this.IHTTPServer.initialize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user