すべての私のWebSocket接続は、HTTP(S)ポートの上に到着し、バックエンドのWSサーバにプロキシされます。Websocket接続の切断は何ですか? (CloudFlareの、Apacheのmod_proxyを)
[client]----[cloudflare]----[Apache 2.4 mod_proxy_wstunnel]----[websocket server]
データが経由するしない場合、クライアントは、私のWSサーバに接続するとソケットは常に100秒後に切断されます。またmod_proxy_wstunnel
、および同じWSサーバーを使用して、同じクライアントとのdevの環境では
、、、この制限は、WSサーバーは、60秒ごとにpingを送信した場合、接続が切断されていない
を発生しません。 。
Cloudflareが静かなWS接続を切断していることを誰もが知っているかどうか、サーバに設定されているmod_proxy
が原因である可能性がありますか?私はどのようにこれの底に到達するか分からない。
すべてのWebサーバー/プロキシ**は、「ハーフクローズド」ソケットを考慮し、pingまたはタイムアウトメカニズムを実装する必要があります(誰もがこれを行うわけではありません)...〜55秒後にHerokuが接続を切断しました。 Websocketを使用するときにpingを実装することをお勧めします(通常はサーバーによって実装され、エラー時にソケットを閉じる)。 – Myst
@Myst私はwebsocketだけでなく、一般的なネットワーキングにも新しくなっています。だから私が観察したことは珍しいことではない? WebSocketは片方の接続が切断されるまで開いたままにするように設計されていると思った。 – BeetleJuice
それはとても普遍的です。それは予想される動作です...私は100秒のタイムアウトが実際に長いと考えられる可能性があると思う。 – Myst