server for my chess game
-rw-r--r--src/index.js66
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");
+ }
+ }
+ });
+});