Give up on dates and sync, this is a cause of unstability
authorRaphaël Jakse <raphael.trivabble@jakse.fr>
Sun, 12 Apr 2020 18:14:18 +0000 (20:14 +0200)
committerRaphaël Jakse <raphael.trivabble@jakse.fr>
Sun, 12 Apr 2020 18:14:18 +0000 (20:14 +0200)
trivabble-server.js
trivabble.js

index 61a4cf024efe9f431413ff12a7d0d04e7373cae9..bad7298320ad8ff55b142605d829c0f555fff325 100644 (file)
@@ -109,7 +109,6 @@ const frValues = {
 
 
 const games = {};
-let dateNow = 0;
 
 let saveTimeout = null;
 let running = true;
@@ -264,8 +263,7 @@ Game.prototype.setPlayerScore = function (player, score) {
             players: [{
                 player: player,
                 score: score
-            }],
-            date: dateNow
+            }]
         }
     );
 };
@@ -288,10 +286,7 @@ Game.prototype.playerJoined = function (playerName) {
         }
     }
 
-    this.pendingEvents.push({
-        players: players,
-        date: dateNow
-    });
+    this.pendingEvents.push({players: players});
 };
 
 Game.prototype.addListeningPlayer = function (playerName, responseAndIsES) {
@@ -361,8 +356,7 @@ Game.prototype.bagPopLetter = function (player) {
         this.pendingEvents.push({
             player: player,
             action: "popBag",
-            remainingLetters: this.remainingLetters,
-            date: dateNow
+            remainingLetters: this.remainingLetters
         });
 
         return letter;
@@ -377,15 +371,12 @@ Game.prototype.getCell = function (index) {
 
 Game.prototype.setCell = function (index, letter, player) {
     this.board[index] = letter;
-    this.pendingEvents.push(
-        {
-            player:player,
-            action:"setCell",
-            indexTo:index,
-            letter:letter,
-            date: dateNow
-        }
-    );
+    this.pendingEvents.push({
+        player:player,
+        action:"setCell",
+        indexTo:index,
+        letter:letter
+    });
 };
 
 Game.prototype.bagPushLetter = function (letter, player) {
@@ -400,14 +391,11 @@ Game.prototype.bagPushLetter = function (letter, player) {
 
         this.remainingLetters++;
 
-        this.pendingEvents.push(
-            {
-                player: player,
-                action: "pushBag",
-                remainingLetters: this.remainingLetters,
-                date: dateNow
-            }
-        );
+        this.pendingEvents.push({
+            player: player,
+            action: "pushBag",
+            remainingLetters: this.remainingLetters
+        });
     }
 };
 
@@ -418,8 +406,7 @@ Game.prototype.reset = function (player) {
         action: "reset",
         board: this.board,
         remainingLetters: this.remainingLetters,
-        rack: [],
-        date: dateNow
+        rack: []
     });
 
     this.playerJoined();
@@ -478,6 +465,7 @@ function handleCommand(cmd, gameNumber, playerName, response) {
     let rack = null;
 
     switch (cmd.cmd) {
+        case "sync": // DEPRECATED. Here for old clients.
         case "joinGame": {
             response.write(
                 JSON.stringify({
@@ -487,9 +475,7 @@ function handleCommand(cmd, gameNumber, playerName, response) {
                     "rack": game.getPlayerRack(playerName),
                     "board": game.board,
                     "remainingLetters": game.remainingLetters,
-                    "letterValues": frValues,
-                    "date": dateNow,
-                    "sync": false
+                    "letterValues": frValues
                 })
             );
             break;
@@ -500,23 +486,6 @@ function handleCommand(cmd, gameNumber, playerName, response) {
             break;
         }
 
-        case "sync": {
-            response.write(
-                JSON.stringify({
-                    "error":0,
-                    "gameNumber": gameNumber,
-                    "playerName": playerName,
-                    "rack": game.getPlayerRack(playerName),
-                    "board": game.board,
-                    "remainingLetters": game.remainingLetters,
-                    "letterValues": frValues,
-                    "date": dateNow,
-                    "sync": true
-                })
-            );
-            break;
-        }
-
         case "score": {
             game.setPlayerScore(cmd.player, cmd.score);
             response.write("{\"error\":0}");
@@ -602,8 +571,7 @@ function handleCommand(cmd, gameNumber, playerName, response) {
                     from: cmd.from,
                     to: cmd.to,
                     indexFrom: typeof cmd.indexFrom === "number" ? cmd.indexFrom : -1,
-                    remainingLetters: game.remainingLetters,
-                    date: dateNow
+                    remainingLetters: game.remainingLetters
                 })
             );
 
@@ -612,8 +580,7 @@ function handleCommand(cmd, gameNumber, playerName, response) {
                     players: [{
                         player: playerName,
                         rackCount: countTiles(rack)
-                    }],
-                    date: dateNow
+                    }]
                 });
             }
             break;
@@ -634,8 +601,7 @@ function handleCommand(cmd, gameNumber, playerName, response) {
                     JSON.stringify({
                         error: 1,
                         rack: rack,
-                        reason: "the new rack doesn't contain the same number of letters",
-                        date: dateNow
+                        reason: "the new rack doesn't contain the same number of letters"
                     })
                 );
                 break;
@@ -653,8 +619,7 @@ function handleCommand(cmd, gameNumber, playerName, response) {
                             JSON.stringify({
                                 error: 1,
                                 rack: rack,
-                                reason: "the new rack is not a permutation of the old rack",
-                                date: dateNow
+                                reason: "the new rack is not a permutation of the old rack"
                             })
                         );
                         break;
@@ -670,8 +635,7 @@ function handleCommand(cmd, gameNumber, playerName, response) {
             response.write(
                 JSON.stringify({
                     error: 0,
-                    rack: rack,
-                    date: dateNow
+                    rack: rack
                 })
             );
 
@@ -689,8 +653,7 @@ function handleCommand(cmd, gameNumber, playerName, response) {
                 msg: {
                     sender: playerName,
                     content: cmd.msg
-                },
-                date: dateNow
+                }
             });
             response.write("{\"error\":0}");
             break;
@@ -714,8 +677,7 @@ function handleCommands(cmds, responseAndIsES) {
                 "letterValues":     game.letterValues,
                 "rack":             game.getPlayerRack(cmds.playerName),
                 "board":            game.board,
-                "remainingLetters": game.remainingLetters,
-                "date": dateNow
+                "remainingLetters": game.remainingLetters
             })
         );
 
@@ -824,7 +786,6 @@ function handleRequest(request, response) {
             response.setHeader("Transfer-Encoding", "chunked");
         }
 
-        dateNow = Date.now();
         debuglog("RECEIVED", request.url, post, responseAndIsES[1]);
 
         try {
index cdc5ab13d2bff7ae251297d4b0647946f143129e..6bd993245144f880cf4ac719055775b32c6b10c9 100644 (file)
@@ -693,15 +693,6 @@ let tile;
             }
         }
 
-        if (data.date) {
-            if (!data.sync && lastDate && lastDate > data.date) {
-                setTimeout(sendCmds, 200, [{cmd:"sync"}]);
-                return;
-            } else {
-                lastDate = data.date;
-            }
-        }
-
         if (data.playerName) {
             set("playerName", data.playerName);
         }