CloseEvent: code プロパティ

codeCloseEvent インターフェイスの読み取り専用プロパティで、サーバーが接続を閉じた理由を示す WebSocket 接続クローズコードを返します。

整数の WebSocket 接続クローズコードであり、 1000 - 4999 の範囲でサーバーが接続を閉じた理由を示します。

ステータスコード 意味 説明
0999 未使用。
1000 通常のクローズ この接続は、作成された目的を正常に完了した。
1001 消滅 サーバーの故障か、ブラウザーが接続を開いたページから移動しているため、エンドポイントが消えている。
1002 プロトコルエラー このエンドポイントはプロトコルエラーにより接続を終了した。
1003 未対応のデータ エンドポイントが受け付けない種類のデータを受信したため、接続を終了した。(例えば、テキストのみのエンドポイントがバイナリデータを受信した場合など。)
1004 予約 予約済み。意味は今後定義されるかもしれない。
1005 ステータス未受信 予約済み。ステータスコードが期待されたにもかかわらず、提供されなかったことを示す。
1006 異常クローズ 予約済み。ステータスコードが期待される接続が異常終了した(close frame が送信されない)ことを示す。
1007 フレームペイロードデータが無効 矛盾するデータ(テキストメッセージ内に UTF-8 ではないデータがあった場合など)を含むメッセージを受信したため、エンドポイントが接続を終了した。
1008 ポリシー違反 エンドポイントは、そのポリシーに違反するメッセージを受信したため、接続を終了しています。これは一般的なステータスコードで、コード 1003 や 1009 が適切でない場合に使用されます。
1009 メッセージが大きすぎる 大きすぎるデータフレームを受信したため、エンドポイントが接続を終了しています。
1010 必須の拡張機能 クライアントが接続を終了している。サーバーが 1 つまたは複数の拡張機能を交渉することを期待したが、サーバーがそうしなかったため。
1011 内部エラー サーバーが接続を終了している。リクエストを実行できない予期せぬ状況に遭遇したため。
1012 サービス再起動 サーバーが再起動するため、接続を終了しようとしている。
1013 後で再試行 サーバーが過負荷のため、一部のクライアントを切断するなど、一時的な状態により接続を終了している。
1014 ゲートウェイ違反 サーバーがゲートウェイまたはプロキシーとして動作しており、上流サーバーから無効な応答を受け取った。これは、 HTTP の 502 ステータスコードと同様です。
1015 TLS ハンドシェイク 予約済み。 TLS ハンドシェイクの失敗(サーバー証明書の確認ができないなど)により、接続が切断されたことを示す。
10162999 WebSocket プロトコル仕様の今後の改訂による定義、および拡張仕様による定義用。
30003999 ライブラリー、フレームワーク、アプリケーションで使用されます。これらのステータスコードは、 IANA に直接登録されています。これらのコードの解釈は、WebSocket プロトコルでは未定義です。
40004999 私的用途向けのものであり、登録はできない。このコードは、WebSocket アプリケーション間の事前の合意により使用することができる。これらのコードの解釈は、WebSocket プロトコルでは未定義。

次の例は、 code の値をコンソールに表示します。

js
WebSocket.onclose = (event) => {
  console.log(event.code);
};

仕様書

Specification
WebSockets Standard
# ref-for-dom-closeevent-code②

ブラウザーの互換性

BCD tables only load in the browser

関連情報