3

I'd like to know if there's a way to communicate directly between two (or more) flask-socketio servers. I want to pass information between servers, and have clients connect a single web socket server, which would have all the combined logic and data from the other servers.

I found this example in JS Socket IO Server to Server where the solution was to use a socket.io-client to connect to another server.

I've looked through the Flask-SocketIO documentation, as well as other resources, however it doesn't appear that Flask-SocketIO has a client component to it.

Any suggestions or ideas?

4

1 回答 1

5

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

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

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

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

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

于 2016-01-14T15:16:18.800 回答