3

2 つ (またはそれ以上) のフラスコソケットサーバー間で直接通信する方法があるかどうか知りたいです。サーバー間で情報を渡し、クライアントに単一の Web ソケット サーバーを接続させたいと考えています。これにより、他のサーバーからのロジックとデータがすべて結合されます。

この例は、JS Socket IO Server to Serverで見つけました。解決策は、socket.io-client を使用して別のサーバーに接続することでした。

Flask-SocketIO のドキュメントやその他のリソースを調べましたが、Flask-SocketIO にクライアント コンポーネントが含まれているようには見えません。

提案やアイデアはありますか?

4

1 に答える 1

5

Flask-SocketIO 2.0 は、(おそらく) やりたいことを実行できます。これについては、ドキュメントの「複数のワーカーを使用する」セクションで説明されています。

基本的に、サーバーは共有メッセージ キュー サービス (redis など) に接続するように構成されており、その前にあるロード バランサーが、スティッキー セッションを使用してプール内の任意のサーバーにクライアントを割り当てます。ブロードキャスト操作は、メッセージをキューに渡すことにより、サーバー間で自動的に調整されます。

追加機能として、このセットアップを使用する場合、任意のプロセスをメッセージ キューに接続して、クライアントにメッセージを投稿できます。たとえば、ワーカーまたは SocketIO ではないその他の補助プロセスからクライアントにイベントを発行できます。サーバ。

あなたの質問から、このようなものを実装しようとしていたのか、それとも別の理由でサーバーに通信させたいのかは不明です。キューでのカスタム メッセージの送信は現在サポートされていませんが、あなたの質問からアイデアが浮かびました。これは、いくつかのシナリオで役立つ可能性があります。

あなたが参照した質問のようにSocketIOクライアントを使用する限り、それもうまくいくはずです。この Python パッケージを使用できます: https://pypi.python.org/pypi/socketIO-client。このルートに進むと、サーバーをクライアントにして、イベントを受信したり、ルームに参加したりできます。

于 2016-01-14T15:16:18.800 に答える