Bläddra i källkod

split unload function

dev_h
lovasoa 4 år sedan
förälder
incheckning
9dc31c81f2
Inget konto är kopplat till bidragsgivarens mejladress
1 ändrade filer med 21 tillägg och 7 borttagningar
  1. 21
    7
      server/sockets.js

+ 21
- 7
server/sockets.js Visa fil

4
   config = require("./configuration");
4
   config = require("./configuration");
5
 
5
 
6
 /** Map from name to *promises* of BoardData
6
 /** Map from name to *promises* of BoardData
7
-  @type {Object<string, Promise<BoardData>>}
7
+  @type {{[boardName: string]: Promise<BoardData>}}
8
 */
8
 */
9
 var boards = {};
9
 var boards = {};
10
 
10
 
143
         var board = await boards[room];
143
         var board = await boards[room];
144
         board.users.delete(socket.id);
144
         board.users.delete(socket.id);
145
         var userCount = board.users.size;
145
         var userCount = board.users.size;
146
-        log("disconnection", { board: board.name, users: board.users.size, reason });
146
+        log("disconnection", {
147
+          board: board.name,
148
+          users: board.users.size,
149
+          reason,
150
+        });
147
         gauge("connected." + board.name, userCount);
151
         gauge("connected." + board.name, userCount);
148
-        if (userCount === 0) {
149
-          board.save();
150
-          delete boards[room];
151
-          gauge("boards in memory", Object.keys(boards).length);
152
-        }
152
+        if (userCount === 0) unloadBoard(room);
153
       }
153
       }
154
     });
154
     });
155
   });
155
   });
156
 }
156
 }
157
 
157
 
158
+/**
159
+ * Unloads a board from memory.
160
+ * @param {string} boardName
161
+ **/
162
+async function unloadBoard(boardName) {
163
+  if (boards.hasOwnProperty(boardName)) {
164
+    const board = await boards[boardName];
165
+    await board.save();
166
+    log("unload board", { board: board.name, users: board.users.size });
167
+    delete boards[boardName];
168
+    gauge("boards in memory", Object.keys(boards).length);
169
+  }
170
+}
171
+
158
 function handleMessage(boardName, message, socket) {
172
 function handleMessage(boardName, message, socket) {
159
   if (message.tool === "Cursor") {
173
   if (message.tool === "Cursor") {
160
     message.socket = socket.id;
174
     message.socket = socket.id;

Laddar…
Avbryt
Spara