瀏覽代碼

Merge pull request #5 from excalidraw/emit_client_disconnection

emit event with disconnected client id
master
Edwin Lin 5 年之前
父節點
當前提交
e263722dde
沒有連結到貢獻者的電子郵件帳戶。
共有 1 個檔案被更改,包括 7 行新增5 行删除
  1. 7
    5
      src/index.ts

+ 7
- 5
src/index.ts 查看文件

35
       socket.broadcast.to(roomID).emit("new-user", socket.id);
35
       socket.broadcast.to(roomID).emit("new-user", socket.id);
36
     }
36
     }
37
     io.in(roomID).emit(
37
     io.in(roomID).emit(
38
-      "room-user-count",
39
-      io.sockets.adapter.rooms[roomID].length
38
+      "room-user-change",
39
+      Object.keys(io.sockets.adapter.rooms[roomID].sockets)
40
     );
40
     );
41
   });
41
   });
42
 
42
 
48
   socket.on("disconnecting", () => {
48
   socket.on("disconnecting", () => {
49
     const rooms = io.sockets.adapter.rooms;
49
     const rooms = io.sockets.adapter.rooms;
50
     for (const roomID in socket.rooms) {
50
     for (const roomID in socket.rooms) {
51
-      const remaining = rooms[roomID].length - 1;
52
-      if (remaining > 0) {
53
-        socket.broadcast.to(roomID).emit("room-user-count", remaining);
51
+      const clients = Object.keys(rooms[roomID].sockets).filter(
52
+        id => id !== socket.id
53
+      );
54
+      if (clients.length > 0) {
55
+        socket.broadcast.to(roomID).emit("room-user-change", clients);
54
       }
56
       }
55
     }
57
     }
56
   });
58
   });

Loading…
取消
儲存