我是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.nickname
或socketID[nickname]
会输入错误昵称未定义。
答案 0 :(得分:1)
我做了一些调试,您可以使用以下方法访问您的字段:
nsps
adapter
对象具有connected
和{{1}}属性。
Connected有一个列表,列出了所有socket.id以及在中间件中装饰的数据。