chat server
-rw-r--r--src/index.js43
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
+ }
+ });
+});