Saving state
[vchess.git] / server / sockets.js
index ae5cc7b..a8e393e 100644 (file)
@@ -57,9 +57,9 @@ module.exports = function(wss) {
           clients[obj.target].send(
             JSON.stringify({code:"askidentity",from:sid}));
           break;
-        case "askchallenges":
+        case "askchallenge":
           clients[obj.target].send(
-            JSON.stringify({code:"askchallenges",from:sid}));
+            JSON.stringify({code:"askchallenge",from:sid}));
           break;
         case "askgame":
           clients[obj.target].send(
@@ -69,12 +69,25 @@ module.exports = function(wss) {
           clients[obj.target].send(
             JSON.stringify({code:"identity",user:obj.user}));
           break;
-        case "askchallenges":
+        case "challenge":
+          // Relay challenge to other player
+          clients[obj.target].send(
+            JSON.stringify({code:"challenge", chall:obj.chall, from:sid}));
+          break;
+        case "acceptchallenge":
+          clients[obj.target].send(
+            JSON.stringify({code:"acceptchallenge", cid:obj.cid, from:sid}));
+          break;
+        case "withdrawchallenge":
+          clients[obj.target].send(
+            JSON.stringify({code:"withdrawchallenge", cid:obj.cid, from:sid}));
           break;
-        case "newchallenge":
-          clients[obj.target].send(JSON.stringify({code:"newchallenge",chall:obj.chall}));
-        case "askgames":
-          // TODO: ask directly to people (webRTC)
+        case "newgame":
+          clients[obj.target].send(JSON.stringify(
+            {code:"newgame", gameInfo:obj.gameInfo}));
+          break;
+        case "game":
+          // TODO: relay (live) game to other player
           break;
                                case "newchat":
           clients[obj.target].send(JSON.stringify({code:"newchat",msg:obj.msg}));
@@ -94,24 +107,12 @@ module.exports = function(wss) {
           clients[oppId].send(JSON.stringify(obj));
                                        break;
                                // TODO: moreover, here, game info should be sent (through challenge; not stored here)
-                               case "newgame":
-          clients[obj.target].send(JSON.stringify({code:"newgame", game:obj.game}));
-                                       break;
-                               case "cancelnewgame": //if a user cancel his seek
-                                       // TODO: just transmit event
-                                       //delete games[page];
-                                       break;
                                // TODO: also other challenge events
                                case "resign":
           clients[obj.target].send(JSON.stringify({code:"resign"}));
                                        break;
                                // TODO: case "challenge" (get ID) --> send to all, "acceptchallenge" (with ID) --> send to all, "cancelchallenge" --> send to all
                                // also, "sendgame" (give current game info, if any) --> to new connections, "sendchallenges" (same for challenges) --> to new connections
-        case "newchallenge":
-          console.log("challenge received");
-          console.log(obj.sender);
-          console.log(obj);
-          break;
                        }
                });
                socket.on("close", () => {