server for my chess game
Diffstat (limited to 'src/index.js')
| -rw-r--r-- | src/index.js | 92 |
1 files changed, 52 insertions, 40 deletions
diff --git a/src/index.js b/src/index.js index 712343c..deae244 100644 --- a/src/index.js +++ b/src/index.js @@ -33,55 +33,20 @@ wss.on("connection", (ws) => { if (header) { switch (header) { case HEADERS.move: - if (games[data.gamecode] !== undefined) { - console.log("move: " + data.move); - games[data.gamecode].forEach((client) => { - send_packet(data, HEADERS.move, client); - }); - break; - } - console.log("game not found!"); + handle_move(data); break; case HEADERS.joinrequest: - console.log("joinrequest"); - if (games[data] !== undefined) { - if (games[data].length < 2) { - if (games[data][0] !== ws) { - send_packet("Y", HEADERS.joinrequest, ws); - games[data].push(ws); - } else { - send_packet( - "err: you have already joined", - HEADERS.joinrequest, - ws - ); - } - } else { - send_packet("err: game full", HEADERS.joinrequest, ws); - } - } else { - send_packet("err: game does not exist", HEADERS.joinrequest, ws); - } + handle_joinrequest(data); break; case HEADERS.hostrequest: - console.log("hostrequest"); - if (games[data] === undefined) { - games[data] = [ws]; - send_packet("Y", HEADERS.hostrequest, ws); - console.log(`game ${data} created`); - } else { - send_packet("err: game already exists", HEADERS.hostrequest, ws); - } + handle_hostrequest(data); break; case HEADERS.stopgame: - console.log("stopgame " + data); - games[data].forEach((client) => { - send_packet("", HEADERS.stopgame, client); - }); - delete games[data]; + handle_stop(data); break; case HEADERS.ping: send_packet("", HEADERS.ping, ws); + break; default: console.log(`header ${header} unknown`); break; @@ -89,3 +54,50 @@ wss.on("connection", (ws) => { } }); }); + +function handle_move(data) { + if (games[data.gamecode] !== undefined) { + console.log("move: " + data.move); + games[data.gamecode].forEach((client) => { + send_packet(data, HEADERS.move, client); + }); + } + console.log("game not found!"); +} + +function handle_joinrequest(data) { + console.log("joinrequest"); + if (games[data] !== undefined) { + if (games[data].length < 2) { + if (games[data][0] !== ws) { + send_packet("Y", HEADERS.joinrequest, ws); + games[data].push(ws); + } else { + send_packet("err: you have already joined", HEADERS.joinrequest, ws); + } + } else { + send_packet("err: game full", HEADERS.joinrequest, ws); + } + } else { + send_packet("err: game does not exist", HEADERS.joinrequest, ws); + } +} + +function handle_hostrequest(data) { + console.log("hostrequest"); + if (games[data] === undefined) { + games[data] = [ws]; + send_packet("Y", HEADERS.hostrequest, ws); + console.log(`game ${data} created`); + } else { + send_packet("err: game already exists", HEADERS.hostrequest, ws); + } +} + +function handle_stop(data) { + console.log("stopgame " + data); + games[data].forEach((client) => { + send_packet("", HEADERS.stopgame, client); + }); + delete games[data]; +} |