嗯,标题说明了一切。如何获得最多连接插座的房间?列出按套接字排序的方法很简单。如果有办法,它的效率如何?如果不是,那么人们可以采用自己有效的方式吗?
答案 0 :(得分:1)
没有经过测试,但我认为这可行:
var roomNames = Object.keys(io.sockets.manager.rooms);
var sortedByNumberOfClients = roomNames.sort(function(room1, room2) {
return io.sockets.manager.rooms[room2].length - io.sockets.manager.rooms[room1].length;
});
// sortedByNumberOfClients is an array of room names, sorted on
// number of clients in the room, largest room first.
我确实认为有一个空字符串(''
)作为包含所有客户端的名称的默认房间,因此您可能想跳过它。另外,我认为内部socket.io
会为每个房间名称添加一个前导/
。