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); }
但是我怎样才能访问这个循环中的昵称属性? 尝试socketID.nickname
,或socketID[nickname]
将出现错误昵称是不是定义。
我做了一些debugging,你可以通过使用以下方式访问你的字段:
for (socketID in io.nsps['/'].adapter.rooms[room_name].sockets) { const nickname = io.nsps['/'].connected[socketID].nickname; // do stuff with nickname }
nsps
对象具有adapter
和connected
属性。
连接有一个所有的socket.id列表和你在中间件装饰的数据。
- 如何从JavaScript中的URL中提取主机?
- 通过node-http-proxy持久基于cookie的会话
- Node.jsfile upload到Gridfs – 错误:请求中止
- ipython相当于javascript / coffeescript为node.js?
- windows nt错误和节点js代码中的elifecycle错误
- 如何获取stringpath名?
- 什么是通过半径API或Node.js模块为世界拉链的很好的search?
- expression式/ Mongoose路由器:'投射到ObjectId失败的价值“未定义”的path“_id”
- 如何在Node.js的RequireJS中正确地使用别名模块