如何跟蹤socket.io
中的所有連接的客戶端?使用socket.io跟蹤連接的套接字
我已經試過這在服務器上:
let numSockets = 0;
io.on('connection', (socket) => {
io.sockets.emit('numSockets', ++numSockets);
socket.on('disconnect',() => {
io.sockets.emit('numSockets', --numSockets);
});
});
,這在客戶端上:
const socket = io();
socket.on('numSockets', function (numSockets) {
console.log(numSockets);
});
它確實打印了一些,但數量,但是,如果我打開兩個窗口,它顯示了4個連接的插座。
這是正確的方法嗎?
我想要實現的是在我的網站的側邊欄中打印連接套接字的ID列表,並讓用戶設置用戶名(而不是自動生成的ID),如果他們想。
但在開始之前,我會確保能夠以正確的方式跟蹤套接字。
所以,我要建立一個[中間件](http://socket.io/docs/server-api/#namespace#use(FN:功能):命名空間)和使用'它內部的io.sockets.emit(io.of('/')。connected)'告訴所有客戶端何時連接了新的套接字? – mortensen
@mortensen是的,這將發送套接字ID的列表到所有連接的客戶端。 – robertklep