chat server
pings
| -rw-r--r-- | src/index.js | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/src/index.js b/src/index.js index 53051cf..8591671 100644 --- a/src/index.js +++ b/src/index.js @@ -1,23 +1,32 @@ -const WebSocket = require('ws') -const gdCom = require('@gd-com/utils') +const WebSocket = require("ws"); +const gdCom = require("@gd-com/utils"); const PORT = process.env.PORT || 3000; -const wss = new WebSocket.Server({ port: PORT }) -console.log(`Server started on port ${PORT}`) -wss.on('connection', ws => { +const wss = new WebSocket.Server({ port: PORT }); - console.log("client connected") +const pingheader = "P"; +const chatheader = "C"; + +console.log(`Server started on port ${PORT}`); +wss.on("connection", (ws) => { + console.log("client connected"); // on message recieved - ws.on('message', (message) => { - console.log("attempting to relay the message") - wss.clients.forEach((client) => { - console.log("relaying message to client") - if (client.readyState === WebSocket.OPEN) { - var recieve= gdCom.getVar(Buffer.from(message)) - console.log(recieve.value) - client.send(gdCom.putVar(recieve)) - }}) - }) -}) + ws.on("message", (message) => { + var recieve = gdCom.getVar(Buffer.from(message)); + if (recieve.header === pingheader) { + // we got pinged + console.log("ping recieved"); + return; // stop + } else if (recieve.header === chatheader) { + console.log(recieve.value); // print the message + wss.clients.forEach((client) => { + // for every client + if (client.readyState !== WebSocket.OPEN) return; // if were ready + client.send(gdCom.putVar(recieve)); // relay the message + }); + return; // stop + } + }); +}); |