私は現在、ワーカー socketio.sgunicorn.GeventSocketIOWorker を使用して、gunicorn サーバーを使用して複数のワーカー間で gevent-socketio をスケーリングしようとしています。それ以外の場合は、XHR ポーリング (IE など) を強制しています。
XHR ポーリングには、次のポーリングを追跡するためのセッションが必要ですが、ワーカーが 1 つから 2 つ以上になるとすぐに、要求がそれらの間で広がり始めます。つまり、状態が失われ、すべてが崩壊します。
次のコード行が関連していると思います: https://github.com/abourget/gevent-socketio/blob/master/socketio/handler.py#L104-106 他のストレージ エンジンが必要だと思います。私は通常の pubsub-action に使用していますが、これは実際のライブラリの奥深くにあります。
私の質問は、ライブラリ自体を変更することなく、アプリケーション内でメモリ内セッション ストレージから別のバックエンド エンジンにグローバルに移動する方法です (上記のリンクのセッション コードを適切にオーバーライドしますか?)。php.ini の PHP のセッション ディレクティブのようなもの。これは非常に一般的な python の質問であるという議論ができると思いますが、関連情報を見つけるのに苦労しており、このライブラリで機能するかどうかもわかりません。
または、別の方法として、gevent-socketio の xhr-polling トランスポートをさまざまなワーカーとサーバー間で (スティッキーなしで) 使用するにはどうすればよいですか?
ありがとう!