我在这里做了一些搜索,找到了this答案
// list all connected sockets
var list = io.sockets.sockets;
console.log("Connected sockets:");
list.forEach(function(s) {
console.log(" socket.id = ", s.id);
});
但是因为提到的
io.sockets.sockets;
没有数组,所以它不起作用。所以我有两个问题:a)如何访问所有连接的 socket ?
b)如何访问连接到特定房间的 socket ?
干杯
PS:这个问题是之前问过的,但是那些问题已经过时了。
最佳答案
在最新版本的socket.io(1.4.5)中,您必须
Object.keys(io.sockets.sockets);
这将返回一个包含连接的套接字ID的数组,您可以在其上申请forEach。
Object.keys(io.sockets.sockets).forEach(function(id) {
console.log("ID:",id) // socketId
})
现在,对于B部分,从与房间使用连接的 socket 中获取套接字ID数组,现在可以
Object.keys(io.sockets.adapter.rooms["ROOM_NAME"].sockets) //returns array of socketId's
关于socket.io - 如何将所有套接字连接到Socket.io,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35249770/