我在这里做了一些搜索,找到了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/

10-12 17:33
查看更多