Node.js socket.io 2.0.3获取所有已连接客户端ID的列表

Node.js socket.io 2.0.3获取所有已连接客户端ID的列表,node.js,express,socket.io,Node.js,Express,Socket.io,我有一个带有名称空间的socket.iov2.0.3服务器 var io = require('socket.io')(88); io.of('/namespace').on('connection', function(client){ client.on('checkForOffline', function(event){ for (var i = 0; i < event.length; i++){ console.

我有一个带有名称空间的socket.io
v2.0.3
服务器

var io = require('socket.io')(88);

io.of('/namespace').on('connection', function(client){

      client.on('checkForOffline', function(event){

          for (var i = 0; i < event.length; i++){
              console.log(client[event[i]["id"]].connected);
              //doesn't work
          } 
      });

});
加载所有连接的客户端ID的数组


要检查客户端id是否已连接,请在
connectedClients[n]
数组中循环。

您的
client
变量不是数组。 这就是为什么:
无法读取属性“connected”

client
变量只保存一次有关客户端的信息。 我有个问题。。。
事件
变量中有什么

io.clients((error, clients) => {
  if (error) throw error;
  console.log(clients); // => [6em3d4TJP8Et9EMNAAAA, G5p55dHhGgUnLUctAAAB]
});
来源
事件
包含('connect')事件('/namespace').clients()的
io.中连接的客户端列表。connected
是一个对象,包含所有连接的客户端id和更多数据,但是我似乎无法访问该对象以获取特定id。@gitterio,这在1.0版之前可以工作,如果我没有错的话。对于
<2.0.3
版本,在其他问题中有答案,尽管它们在我的情况下不起作用。
io.clients((error, clients) => {
  if (error) throw error;
  console.log(clients); // => [6em3d4TJP8Et9EMNAAAA, G5p55dHhGgUnLUctAAAB]
});