在Socket.io版本中列出连接到房间的所有客户端> 1

时间:2014-06-11 00:47:17

标签: node.js socket.io migration

从Socket.io的更高版本中折旧了io.sockets.clients()方法,之后我的研究在socket.io官方网站上找不到任何文档。

此外,它为clients()方法提供了类型错误,如下所示:

  

TypeError: undefined不是函数

有没有人想出如何使用更高版本的Socket.io列出房间中所有连接的客户端?

2 个答案:

答案 0 :(得分:27)

要获取连接到房间的客户端的套接字ID,请使用以下代码:

var namespace = '/';
var roomName = 'my_room_name';
for (var socketId in io.nsps[namespace].adapter.rooms[roomName]) {
    console.log(socketId);
}

修改

要按套接字ID获取套接字,您可以尝试这样做:

var socket = io.sockets.connected[socketId];

答案 1 :(得分:-2)

在Socket.IO 1.4中

获取所有连接用户的数组:

// io.sockets.connected returns an Object with socketId as its key 

var allConnectedClients = Object.keys(io.sockets.connected);// This will return the array of SockeId of all the connected clients

获取所有客户的计数:

var clientsCount = io.engine.clientsCount ; // This will return the count of connected clients