Socket.io如何通过昵称列出房间中的套接字

时间:2017-11-03 10:58:04

标签: javascript node.js socket.io

我是node.js和javascript的新手。我正在使用socket.io并尝试列出在给定房间中连接的套接字。当套接字连接时,我给它起一个昵称:

io.use(function (socket, next) {
  var handshakeUserid = socket.request._query.userid;
  socket.nickname = handshakeUserid;
  next();
});

使用此代码,我可以获得套接字的ID:

 for (socketID in io.nsps['/'].adapter.rooms[room_name].sockets) {
   console.log(socketID);
 }

但是如何在此循环中访问nickname属性?尝试socketID.nicknamesocketID[nickname]会输入错误昵称未定义。

1 个答案:

答案 0 :(得分:1)

我做了一些调试,您可以使用以下方法访问您的字段:

nsps

adapter对象具有connected和{{1}}属性。

Connected有一个列表,列出了所有socket.id以及在中间件中装饰的数据。