server for my chess game
Diffstat (limited to 'src/index.js')
-rw-r--r--src/index.js92
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];
+}