内部的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); }); });
socket.io是否存储连接列表,如下所示:
io.connections
要么
io.sockets
比我期望find这个信息更麻烦,对于更新版本的socket.io。 我正在使用version => "socket.io": "^1.7.2"
下面的函数将给你一个套接字对象的数组:
function clients(namespace) { var res = []; var ns = io.of(namespace || "/"); if (ns) { Object.keys(ns.connected).forEach(function (id) { res.push(ns.connected[id]); }); } return res; }
也许你需要这个: io.sockets.connected
var clients = Object.keys(io.sockets.connected);