我在这里做了一些搜索并找到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)如何访问所有连接的套接字?
b)如何访问连接到特定房间的插座?
干杯
PS:之前曾问过这个问题,但这些问题已经过时了。
答案 0 :(得分:12)
在最新版本的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部分,让连接到房间的插座中的插座阵列使用
Object.keys(io.sockets.adapter.rooms["ROOM_NAME"].sockets) //returns array of socketId's