我正在使用Flask-Socketio库来熟悉套接字io。
我想创建某种聊天应用程序/留言板。您可以创建房间,加入房间并与该房间中的其他人聊天。
为了加入现有房间,我想获得服务器端所有现有房间的列表。因此,用户可以选择要加入的房间,也可以创建一个新房间。
我尝试过flask_socketio.rooms
,但这只给了我该用户加入的房间。
有人知道如何获取所有现有房间的列表吗?
谢谢!
答案 0 :(得分:1)
无法获取所有已创建的房间。由于您的应用程序正在创建房间,因此如果您需要完整的列表,它可以跟踪它们。
如果您想知道为什么没有提供房间列表的功能,则原因是Flask-SocketIO被设计为分布式服务。在多服务器配置中,每个服务器仅知道其认识的用户的房间,而不是完整列表。生成所有房间的列表将变得很复杂。
答案 1 :(得分:0)
您可以通过这种方式获得所有打开的房间:
self.server.manager.rooms.keys()
或者对于特定的命名空间:
self.server.manager.rooms[self.namespace].keys()