.clients([room], fn);
支持,以获取房间中的套接字 ID 列表。 我向@FREEZX发送了一个 PR,以添加方法.roomClients([socketid],fn)
以及获取套接字 ID 所在的房间列表。这在 0.9.x 中使用io.sockets.manager.roomClients[socket_id]
是可能的,并且当与 RedisStore 一起使用时,它曾经可以跨多个节点工作。
也可以使用io.sockets.manager.rooms
获取所有房间的哈希值,但我在 1.x 中看不到它。 有io.sockets.adapter.rooms
但就我所见,它不能跨节点工作。
可以使用上述两个函数来获取这些数据。 首先获取 room '' 中的所有套接字 ID,然后反复调用 roomClients 以获取房间并合并它们,但这意味着对 roomClients 进行 n 次调用,就像读取 0.9.x 中的io.sockets.manager.rooms
对象一样简单
:+1:
+1 在这一点上。 如果没有列出房间的能力,你甚至无法制作一个像样的聊天系统。
(和)
:+1:
有没有人有办法进入所有房间?
由https://github.com/socketio/socket.io-redis/pull/168关闭
io.adapter.allRooms(function (err, rooms) {
console.log(rooms); // an array containing all rooms (accross every node)
});
我正在使用 2.0.4 并且 io.adapter.allRooms 不起作用。 任何的想法?
我使用 io.sockets.adapter.rooms
@wangdalang能否请您显示代码示例并链接到文档。 我好像找不到
最有用的评论
我使用 io.sockets.adapter.rooms