summary refs log tree commit diff
path: root/webrtc/src/events/Message.ts
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-09-16 12:54:02 +1000
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-09-16 13:19:33 +1000
commit493c21968b2758fe987e63a7b7750427c726068d (patch)
tree0fe5e7d17f99374fdfb4bb1b13c310b959a9c393 /webrtc/src/events/Message.ts
parentPerhaps a message create perf test? (diff)
downloadserver-493c21968b2758fe987e63a7b7750427c726068d.tar.xz
Probably broken merge from webrtc
Diffstat (limited to '')
-rw-r--r--webrtc/src/events/Message.ts38
1 files changed, 38 insertions, 0 deletions
diff --git a/webrtc/src/events/Message.ts b/webrtc/src/events/Message.ts
new file mode 100644

index 00000000..8f75a815 --- /dev/null +++ b/webrtc/src/events/Message.ts
@@ -0,0 +1,38 @@ +import { CLOSECODES, Payload, WebSocket } from "@fosscord/gateway"; +import { Tuple } from "lambert-server"; +import OPCodeHandlers from "../opcodes"; +import { VoiceOPCodes } from "../util"; + +const PayloadSchema = { + op: Number, + $d: new Tuple(Object, Number), // or number for heartbeat sequence + $s: Number, + $t: String +}; + +export async function onMessage(this: WebSocket, buffer: Buffer) { + try { + var data: Payload = JSON.parse(buffer.toString()); + if (data.op !== VoiceOPCodes.IDENTIFY && !this.user_id) return this.close(CLOSECODES.Not_authenticated); + + // @ts-ignore + const OPCodeHandler = OPCodeHandlers[data.op]; + if (!OPCodeHandler) { + // @ts-ignore + console.error("[WebRTC] Unkown opcode " + VoiceOPCodes[data.op]); + // TODO: if all opcodes are implemented comment this out: + // this.close(CloseCodes.Unknown_opcode); + return; + } + + if (![VoiceOPCodes.HEARTBEAT, VoiceOPCodes.SPEAKING].includes(data.op as VoiceOPCodes)) { + // @ts-ignore + console.log("[WebRTC] Opcode " + VoiceOPCodes[data.op]); + } + + return await OPCodeHandler.call(this, data); + } catch (error) { + console.error("[WebRTC] error", error); + // if (!this.CLOSED && this.CLOSING) return this.close(CloseCodes.Unknown_error); + } +} \ No newline at end of file