gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 23:23:26 26 4
gpt4 key购买 nike

我是 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.nicknamesocketID[nickname] 将抛出一个错误 nickname is not define。

最佳答案

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

 for (socketID in io.nsps['/'].adapter.rooms[room_name].sockets) {
const nickname = io.nsps['/'].connected[socketID].nickname;
// do stuff with nickname
}

nsps 对象具有 adapterconnected 属性。

Connected 有一个列表,包含所有 socket.id 和您在中间件中装饰的数据。

关于javascript - Socket.io 如何通过昵称列出房间中的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47094139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com