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()
我正在使用 Flask-Socketio 库熟悉套接字 io。
我想创建某种聊天 app/message 板。您可以创建房间、加入房间并与房间中的其他人聊天。
为了加入现有房间,我想在服务器端获取所有现有房间的列表。所以用户可以select加入哪个房间,或者创建一个新房间。
我试过 flask_socketio.rooms
,但这只给我该用户加入的房间。
有谁知道如何获得所有个现有房间的列表?
谢谢!
无法获取所有创建的房间。由于您的应用程序正在创建房间,因此如果您需要完整列表,它可以跟踪它们。
如果你想知道为什么没有提供房间列表的功能,原因是 Flask-SocketIO 被设计为分布式服务。在多服务器配置中,每个服务器只知道它所知道的用户的房间,而不是完整的列表。然后生成所有房间的列表就变成了一个复杂的操作。
您可以通过以下方式获取所有打开的房间:
self.server.manager.rooms.keys()
或特定命名空间:
self.server.manager.rooms[self.namespace].keys()