WebSocket のコード 1006 は、期待される Close フレームを伴わない異常クローズを報告します。このコードは予約済みです。エンドポイントは WebSocket の Close フレームのステータスとして 1006 を送ってはなりません。API イベントでこれを見ても、プロキシを原因と特定するサーバーからのメッセージではありません。

接続が一度も開かなかった場合

設定を順に追います。プロキシへの接続、プロキシのネゴシエーション、WSS 用の宛先 TLS、そして WebSocket のオープニングハンドシェイクです。プロキシのチャレンジやトンネルの拒否は、WebSocket の段階より前で手順を止めることがあります。

開いてメッセージを運んだ場合

利用できた時間と、クローズ前に何が起きたかを記録します。転送の中断、アプリケーションの停止、中間装置の方針のいずれも、受信側をきれいなクローズ交換なしに残すことがあります。

エンドポイント、セッション識別子、最終アクティビティ、正常な Close フレームが観測されたかどうかを保存します。ブラウザやライブラリのネットワークエラーを、管理下の宛先ログと比較します。イベントコードだけでは、ISP、プロキシ事業者、アプリケーションサーバーのどれを原因として特定することもできません。

同じプロキシを通る通常の HTTPS ページが確かめるのは短いやり取りであり、このセッションの寿命ではありません。経路を変えるときはブラウザの状態とアプリケーションのコードを一定に保ちます。そうしないと、再試行の成功を解釈しにくくなります。

証拠が支える境界を修復します。プロキシ認証、TLS の信頼、アプリケーションの再接続は別々の作業であり、すべてのタイムアウトを増やしても 1006 がそのどれかを示すようにはなりません。

関連記事