如何在socket.io v1+;中获取已连接套接字对象(而不是套接字ID)的列表;?

如何在socket.io v1+;中获取已连接套接字对象(而不是套接字ID)的列表;?,socket.io,Socket.io,我使用的是更新版本的socket.io,我不知道如何获取socket对象的列表。我已经学习了一些教程和StackOverflow答案,例如: 我也看过文档,但没什么帮助。我找到的所有帖子都解释了如何获取socketId,但我需要套接字本身,这样我就可以只向某些套接字发射 那么,您是如何获得实际的套接字本身的,还是在较新版本的套接字中不再可能实现这一点呢?您可以有两种选择: // An object with socket.id as property and socket object as

我使用的是更新版本的socket.io,我不知道如何获取socket对象的列表。我已经学习了一些教程和StackOverflow答案,例如:

我也看过文档,但没什么帮助。我找到的所有帖子都解释了如何获取socketId,但我需要套接字本身,这样我就可以只向某些套接字发射


那么,您是如何获得实际的套接字本身的,还是在较新版本的套接字中不再可能实现这一点呢?

您可以有两种选择:

// An object with socket.id as property and socket object as value
// You could iterate this with for/in or use `Object.keys()` to get the ids
//   and then access each socket by id
// io.sockets.connected

var ids = Object.keys(io.sockets.connected);
ids.forEach(function(id) {
    var socket = io.sockets.connected[id];
    // do something with socket here

});

// an array of sockets which you can iterate directly as an array.
// io.sockets.sockets

io.sockets.sockets.forEach(function(socket) {
    // do something with socket here

});
您还可以单独访问名称空间:

// array of sockets in this namespace
io.nsps['/'].sockets

//  map of socket ids in this namespace
io.nsps['/'].connected