我想将socket.id存储在一个数组中,并随机选择一个连接的用户将数据传递给他们,尽管socket.id返回为未定义,我如何存储和检索socket.id?这是我的代码:
var players = [];
// Socket Connection
io.on('connection', function(socket){
console.log('A user has connected.', socket.id);
players.push(socket.id);
console.log(players);
});
最佳答案
无需创建自己的 id 数组,socket.io
已经有一个可用的 id 数组,这意味着每当客户端加入或离开时它都会更新。使用io.connected
:
The hash of
Socket
objects that are connected to this namespace, indexed byid
.
您可以使用 Object.keys()
获取仅包含 id 的数组:
console.log(Object.keys(io.connected)); // array of ids
或使用 Object.values()
的套接字本身数组:
console.log(Object.values(io.connected)); // array of Socket objects
关于javascript - 在 Node.js、Socket.io 数组中,socket.id 返回为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53602348/