Socketio 房间 - 如何获取所有房间的列表

Socketio rooms - how to get list of ALL rooms

我正在使用 Flask-Socketio 库熟悉套接字 io。

我想创建某种聊天 app/message 板。您可以创建房间、加入房间并与房间中的其他人聊天。

为了加入现有房间,我想在服务器端获取所有现有房间的列表。所以用户可以select加入哪个房间,或者创建一个新房间。

我试过 flask_socketio.rooms,但这只给我该用户加入的房间。

有谁知道如何获得所有个现有房间的列表?

谢谢!

无法获取所有创建的房间。由于您的应用程序正在创建房间,因此如果您需要完整列表,它可以跟踪它们。

如果你想知道为什么没有提供房间列表的功能,原因是 Flask-SocketIO 被设计为分布式服务。在多服务器配置中,每个服务器只知道它所知道的用户的房间,而不是完整的列表。然后生成所有房间的列表就变成了一个复杂的操作。

您可以通过以下方式获取所有打开的房间:

self.server.manager.rooms.keys()

或特定命名空间:

self.server.manager.rooms[self.namespace].keys()