我想将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