summary refs log tree commit diff
path: root/src/events/Message.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/events/Message.ts')
-rw-r--r--src/events/Message.ts45
1 files changed, 0 insertions, 45 deletions
diff --git a/src/events/Message.ts b/src/events/Message.ts
deleted file mode 100644

index 2ca82b3c..00000000 --- a/src/events/Message.ts +++ /dev/null
@@ -1,45 +0,0 @@ -import WebSocket, { Data } from "../util/WebSocket"; -var erlpack: any; -try { - erlpack = require("erlpack"); -} catch (error) {} -import OPCodeHandlers from "../opcodes"; -import { Payload, CLOSECODES } from "../util/Constants"; -import { instanceOf, Tuple } from "lambert-server"; -import { check } from "../opcodes/instanceOf"; - -const PayloadSchema = { - op: Number, - $d: new Tuple(Object, Number), // or number for heartbeat sequence - $s: Number, - $t: String, -}; - -export async function Message(this: WebSocket, buffer: Data) { - // TODO: compression - var data: Payload; - - if (this.encoding === "etf" && buffer instanceof Buffer) data = erlpack.unpack(buffer); - else if (this.encoding === "json" && typeof buffer === "string") data = JSON.parse(buffer); - else return; - - check.call(this, PayloadSchema, data); - - // @ts-ignore - const OPCodeHandler = OPCodeHandlers[data.op]; - if (!OPCodeHandler) { - console.error("Unknown_opcode: " + data.op); - // TODO: if all opcodes are implemented comment this out: - // this.close(CLOSECODES.Unknown_opcode); - return; - } - - console.log("got: " + OPCodeHandler.name); - - try { - return await OPCodeHandler.call(this, data); - } catch (error) { - console.error(error); - if (!this.CLOSED && this.CLOSING) return this.close(CLOSECODES.Unknown_error); - } -}