diff options
author | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2022-01-16 02:37:38 +1100 |
---|---|---|
committer | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2022-01-16 02:38:43 +1100 |
commit | 1569fec0cf23442b176b2a9a775208349aa719ed (patch) | |
tree | f36aff30a3d5e82f569fa7815c83a33a3066c7d3 /webrtc/src/Server.ts | |
parent | Fix typo in commit 277b28c (diff) | |
download | server-1569fec0cf23442b176b2a9a775208349aa719ed.tar.xz |
boilerplate stuff
Diffstat (limited to 'webrtc/src/Server.ts')
-rw-r--r-- | webrtc/src/Server.ts | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/webrtc/src/Server.ts b/webrtc/src/Server.ts index 6591691c..06a36df9 100644 --- a/webrtc/src/Server.ts +++ b/webrtc/src/Server.ts @@ -1,5 +1,8 @@ import { Server as WebSocketServer } from "ws"; -import { Config, db } from "@fosscord/util"; +import { WebSocket, CLOSECODES, Payload, OPCODES } from "@fosscord/gateway"; +import { Config, initDatabase } from "@fosscord/util"; +import OPCodeHandlers from "./opcodes"; +import { setHeartbeat } from "./util" import mediasoup from "mediasoup"; var port = Number(process.env.PORT); @@ -7,38 +10,29 @@ if (isNaN(port)) port = 3004; export class Server { public ws: WebSocketServer; - public turn: any; constructor() { this.ws = new WebSocketServer({ port, maxPayload: 4096, }); - this.ws.on("connection", (socket) => { - socket.on("message", (message) => { - socket.emit( - JSON.stringify({ - op: 2, - d: { - ssrc: 1, - ip: "127.0.0.1", - port: 3004, - modes: [ - "xsalsa20_poly1305", - "xsalsa20_poly1305_suffix", - "xsalsa20_poly1305_lite", - ], - heartbeat_interval: 1, - }, - }) - ); + this.ws.on("connection", async (socket: WebSocket) => { + await setHeartbeat(socket); + + socket.on("message", async (message: string) => { + const payload: Payload = JSON.parse(message); + + if (OPCodeHandlers[payload.op]) + await OPCodeHandlers[payload.op](socket, payload); + else + console.error(`Unimplemented`, payload) }); }); } async listen(): Promise<void> { // @ts-ignore - await (db as Promise<Connection>); + await initDatabase(); await Config.init(); console.log("[DB] connected"); console.log(`[WebRTC] online on 0.0.0.0:${port}`); |