服务器到服务器通信

Server to Server Communication

我想知道是否有一种方法可以在两个(或多个)flask-socketio 服务器之间直接通信。我想在服务器之间传递信息,并让客户端连接单个 Web 套接字服务器,该服务器将具有来自其他服务器的所有组合逻辑和数据。

我在 JS Socket IO Server to Server 中找到了这个示例,解决方案是使用 socket.io-客户端连接到另一个服务器。

我查看了 Flask-SocketIO 文档以及其他资源,但是 Flask-SocketIO 似乎没有客户端组件。

有什么建议或想法吗?

Flask-SocketIO 2.0 可以(也许)做你想做的事。这在文档的 Using Multiple Workers 部分进行了解释。

基本上,服务器被配置为连接到共享消息队列服务(例如,redis),然后它们前面的负载平衡器使用粘性会话将客户端分配给池中的任何服务器。通过在队列上传递消息,广播操作在服务器之间自动协调。

作为一项附加功能,如果您使用此设置,您可以让任何进程连接到消息队列以向客户端发送 post 消息,例如,您可以从工作人员向客户端发送事件或其他不是 SocketIO 服务器的辅助进程。

从你的问题来看,不清楚你是否正在寻求实现类似的东西,或者你是否想让服务器出于不同的原因进行通信。目前不支持在队列上发送自定义消息,但你的问题给了我灵感,这可能对某些场景有用。

就您提到的问题中使用 SocketIO 客户端而言,应该也可以。您可以使用这个 Python 包:https://pypi.python.org/pypi/socketIO-client。如果你走这条路,你可以让服务器成为客户端并接收事件或加入房间。