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

时间:2018-08-23 09:37:39

标签: python flask websocket socket.io flask-socketio

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

我想创建某种聊天应用程序/留言板。您可以创建房间,加入房间并与该房间中的其他人聊天。

为了加入现有房间,我想获得服务器端所有现有房间的列表。因此,用户可以选择要加入的房间,也可以创建一个新房间。

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

有人知道如何获取所有现有房间的列表吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

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

如果您想知道为什么没有提供房间列表的功能,则原因是Flask-SocketIO被设计为分布式服务。在多服务器配置中,每个服务器仅知道其认识的用户的房间,而不是完整列表。生成所有房间的列表将变得很复杂。

答案 1 :(得分:0)

您可以通过这种方式获得所有打开的房间:

self.server.manager.rooms.keys()

或者对于特定的命名空间:

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