複数のsocket.ioサーバー(ALB均衡)の場合、クライアントは「トランスポートエラー」を起こす両方のノードに接続され、切断されます。理想的には、1つのノードに接続し、そのノードに接続したままにする必要があります。 ALB内の1つのノードの場合、接続は永続的です。どんな助け?socket.ioクライアントの接続が繰り返し切断される
1
A
答えて
1
デフォルトでは、socket.ioが最初に起動すると、httpポーリングモードで起動します。いくつかのシーケンシャルなhttpリクエストと、両端の機能のOKチェックの後、webSocketモードに切り替わります。これは、最初に動作する接続を作成し、両端でwebSocketがサポートされているかどうかを判断し、そうであればwebSocketを使用するように切り替えます。非粘着性のロードバランサを使用している場合、最初のいくつかのHTTPポーリング要求が異なるサーバーで終了する可能性があります。これにより、単一のサーバーでいくつかの接続が失われるためsocket.ioの動作が破損する可能性があります。起動シーケンス。
ロードバランサをスティッキーに設定すると、常に同じクライアントを同じサーバーに送信するか、socket.ioにwebSocketモードでのみ接続するように指示できます。ここに見られるように
はWebSocketのとポーリングなし(これだけの接続を1つ)を使用するだけにsocket.ioを設定するには、クライアントでの設定オプションを設定することができます。Socket.io 1.x: use WebSockets only?
ことに留意してくださいsocket.ioには自動接続ロジックがあるので、サーバーへのsocket.io接続を確立してからしばらく時間がかかると、何らかの理由で接続が停止すると、クライアントは現在の接続を切断して新しい接続を試みます。それでもスティッキーでないロードバランサを使用している場合は、その再接続が別のサーバーで終了する可能性があります。サーバー上で何をしているかによって、問題が発生する場合としない場合があります。スティッキーロードバランシングは、再接続が同じサーバー上で終わることを確認します。
関連する問題
- 1. ジェンキンスエージェントは繰り返し切断/再接続を続けます
- 2. Socket.io - クライアント側の切断後の手動再接続
- 3. GCP Bigtable Pythonクライアントの接続が切断されました
- 4. socket.io強制切断クライアント
- 5. 繰り返し接続されたコンポーネントアルゴリズム
- 6. (Restify、ReactJS、Node.js)Socket.ioクライアントの状態が切断され、サーバーが接続をログに記録します。
- 7. 突然の切断後にSocket.ioクライアントがサーバに再接続できない
- 8. socket.ioを切断してクライアントから再接続する方法は?
- 9. CoreBluetoothが繰り返し切断されています
- 10. ポップアップを閉じるとSocket.IOの接続が切断されます
- 11. Node.JS rawソケット:繰り返しの接続切断を行う方法?
- 12. 切断後にsocket.io接続がまだ存在する
- 13. MQTT Eclipse PahoクライアントがAndroidで接続が切断され、完了しない
- 14. socket.io +アンドロイド - 切断ソケットと再接続し、別のURLで
- 15. 接続されたデータグラムソケットを切断して再接続する
- 16. ネットワーク障害による切断イベントの接続の再接続 - Socket.io
- 17. C#クライアント/サーバソケットが切断された後に再び接続されない
- 18. Socket.io '切断イベント'が再接続後に遅すぎます。
- 19. クライアントが接続を途中で切断し、nginxの
- 20. iPhoneの画面ロック後にiOSソケットが繰り返し切断される
- 21. 切断されたネットワークドライブの再接続
- 22. キーボードが接続/切断されたときのWin32の判断
- 23. Ejabberdキャッチクライアントの接続が切断さ
- 24. オブジェクトはどのようにクライアントとの接続が切断されますか?
- 25. 他のクライアントがサーバに接続したときにMqttクライアントが切断される
- 26. クライアントが切断(ユーザログオフ)して再度接続すると(ユーザが再びログインする)サーバが切断されたときにクライアントが応答しない
- 27. "クライアントが切断されました" HttpException
- 28. 春のWebSocketは、私はクライアントの接続が切断
- 29. SignalRの切断がインターネットの切断/再接続で呼び出されない
- 30. 接続が切断された後にDBが再接続しない
ポーリングではなくwebsocketとして直接トランスポートを使用するというデメリットはありますか? –
@VikasGoyal - WebSocketをサポートしていないブラウザで実行すると、接続できません。 socket.ioは通常、欠落しているwebSocketの代わりにhttpポーリングを代入することによってその条件を処理します。 – jfriend00