socket.id在数组Node.js、socket.io中返回为未定义



我想将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已经有了一个活动的,这意味着每当客户端加入或离开时,它都会更新。使用io.connected:

连接到此命名空间的Socket对象的哈希,由id索引。

您可以使用Object.keys():获得一个仅包含id的数组

console.log(Object.keys(io.connected)); // array of ids

或者使用Object.values():的套接字本身的阵列

console.log(Object.values(io.connected)); // array of Socket objects

最新更新