内部socket.io客户端列表位置

Ale*_*lls 7 sockets websocket node.js socket.io

我想知道Socket.io是否会在内部进行簿记并允许用户检索客户列表,或者我们是否需要手动跟踪连接客户端列表,如下所示:

var Server = require('socket.io');
var io = new Server(3980, {});

const clients = [];

io.on('connection', function (socket) {

    clients.push(socket);

    socket.on('disconnect', function () {

        clients.splice(clients.indexOf(socket),1);

    });
});
Run Code Online (Sandbox Code Playgroud)

socket.io存储连接列表,如下所示:

io.connections
Run Code Online (Sandbox Code Playgroud)

要么

io.sockets
Run Code Online (Sandbox Code Playgroud)

对于较新版本的socket.io,遇到的麻烦比我预期的要多.我正在使用version => "socket.io": "^1.7.2"

one*_*alf 3

也许你需要这个:io.sockets.connected

var clients = Object.keys(io.sockets.connected);
Run Code Online (Sandbox Code Playgroud)

那么如果你需要一个套接字:
var socket = io.sockets.connected[socket_id]