flask-socketio 每个用户一个房间?昂贵的?

flask-socketio one room per user ? expensive?

我有一个 flask webapp 运行 pandas 在后端做一些数据分析。

现在,我采用了天真的方法,即使用 AJAX 让用户将查询发送回服务器并与数据交互。但事实证明,每个请求都有很多开销,而且每次我都需要将数据重新加载到 pandas/memory 中,这是非常重复的。

我认为 socketio 在这里可能会有很好的用处 - 我会打开一个套接字连接,这样一旦文件被加载到 pandas,用户就可以以更少的成本更快地交互和查询数据通过套接字的开销。

所以我现在的问题是:

为每个用户打开一个房间是一种有效的解决方案,我通常会推荐这种解决方案,以便能够轻松地在服务器推送的消息中解决单个用户的问题。

房间保存在内存中的 Python 数据结构中,因此它们的开销仅在于它们使用了一点内存。我没有统计每个用户的数量,但它可能只是房间名称顶部的几个字节。

命名空间用于将多个不同的连接复用到一个物理通道中。如果您只有一个连接,则只需对所有内容使用相同的命名空间。例如,如果您的页面中有两个客户端应用程序(例如 angular 应用程序),您应该使用多个命名空间,每个应用程序都有自己的一组事件处理程序。除此之外,没有理由使用多个命名空间。

希望对您有所帮助。