server for my chess game
multiplayer attempts
| -rw-r--r-- | src/index.js | 66 |
1 files changed, 49 insertions, 17 deletions
diff --git a/src/index.js b/src/index.js index 53051cf..514585b 100644 --- a/src/index.js +++ b/src/index.js @@ -1,23 +1,55 @@ -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 HEADERS = { + move: "M", + joinrequest: "J", + hostrequest: "H", +}; + +let games = {}; + +function send_packet(string, header, client) { + const packet = gdCom.putVar({ string: string, header: header }); + client.send(packet); +} + +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) => { + let recieve = gdCom.getVar(Buffer.from(message)); + let data = recieve.string; + if (recieve.header) { + console.log(recieve.header); + switch (recieve.header) { + case HEADERS.move: + console.log("move"); + case HEADERS.joinrequest: + console.log("joinrequest"); + if (games[data] != undefined && games[data].length < 2) { + send_packet("Y", HEADERS.joinrequest, ws); + games[data].push(ws); + } else { + send_packet("err: game does not exist", HEADERS.joinrequest, ws); + } + case HEADERS.hostrequest: + console.log("hostrequest"); + if (games.indexOf(data) != -1) { + games[data] = [ws]; + send_packet("Y", HEADERS.hostrequest, ws); + } else { + send_packet("err: game already exists", HEADERS.hostrequest, ws); + } + default: + console.log("unknown"); + } + } + }); +}); |