]> Untitled Git - go.git/blobdiff - socket/server.js
Switched to nginx alpine
[go.git] / socket / server.js
index 017bebdf62e6b81724eea11b640acb378e614039..cb62184d62ba4ddfb68dc6d3bd5d7c2d8b72d7ad 100644 (file)
@@ -29,10 +29,10 @@ async function pollStatefulChange(ws, session_id) {
                     "data": await db.getBoardState(session_id)
                 }));
             }
-            await sleep(1000);
         } catch(err) {
             console.log(`websocket poll error: ${err}`);
         }
+        await sleep(1000);
     }
 }
 
@@ -41,10 +41,9 @@ app.ws('/ws', async function(ws, req) {
     var session_id = 0;
     db.initBoard();
 
-    // send initial message to draw client board
+    // get session ID
     ws.send(JSON.stringify({
-        "type": "board",
-        "data": await db.getBoardState(session_id)
+        "type": "session"
     }));
 
     ws.on('message', async function(msg) {
@@ -52,6 +51,15 @@ app.ws('/ws', async function(ws, req) {
         try {
             parsed = JSON.parse(msg);
             switch (parsed.type) {
+                case "session":
+                    session_id = parsed.data.session
+
+                    // send initial message to draw session client board
+                    ws.send(JSON.stringify({
+                        "type": "board",
+                        "data": await db.getBoardState(session_id)
+                    }));
+                    break;
                 case "new":
                     ws.send(JSON.stringify({
                         "type": "new",