module.exports = upgradeWebSocketServer; function upgradeWebSocketServer(wss) { wss.on("connection", (ws) => { upgradeWebSocket(ws); }); wss.sendEvent = function(event, data) { wss.clients.forEach((ws) => { ws.sendEvent(event, data); }); } } function upgradeWebSocket(ws) { ws.on("message", (message) => { let parsedMessage = null; try { parsedMessage = JSON.parse(message); if ("event" in parsedMessage && "data" in parsedMessage) { ws.emit(parsedMessage.event, parsedMessage.data); } } catch {} }); ws.sendEvent = function(event, data) { return ws.send(JSON.stringify({"event" : event, "data" : data})); } }