を受け入れるエンドポイントがあり、text/event-stream
基本的に と の 2 つの異なるタイプのイベントを送信stats
しますresult
。サーバーresult
がイベントを送信し、接続を閉じるとき。
問題は、sse の設計上、ブラウザーが接続を再試行することです。それを防ぐために、リトライ値を 60000 などのより高い数値に設定し、結果が得られたらクライアントで接続を閉じます。
問題は、待ち時間が長い場合、Chrome が複数のリクエストをサーバーに送信することです (localhost では問題なく動作します)。Safari と Firefox は問題なく動作します。Chromeでは、ネットワークタブにリクエストが1つしかないため、リクエストがタイムアウトしたためにChromeがサーバーに接続しようとすることはないと思います。また、2番目のリクエストを送信するため、サーバーが最初のリクエストを閉じるのを待ちません。Chrome でこの問題が発生する原因は何ですか?
注: サーバーが送信したリクエストのエンドポイントとオリジンは異なります。通常の HTTP リクエストの場合、Chrome は権限を確認するために OPTIONS リクエストを追加で送信しますが、SSE の場合は OPTIONS プリフライト リクエストを送信しませんが、SSE は GET リクエストであるため、これが問題であるかどうかはわかりません。