服务器到服务器通信

时间:2016-01-13 22:32:58

标签: flask-socketio

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

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

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

有任何建议或想法吗?

1 个答案:

答案 0 :(得分:5)

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

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

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

根据您的问题,目前还不清楚您是否希望实施类似的功能,或者您是否希望让服务器以不同的方式进行通信。目前不支持在队列上发送自定义消息,但您的问题给了我这个想法,这可能对某些情况有用。

就您在引用的问题中使用SocketIO客户端而言,该shouud也有效。您可以使用此Python包:https://pypi.python.org/pypi/socketIO-client。如果你走这条路,你就可以让服务器成为客户,接收活动或加入会议室。