CloseEvent: code プロパティ

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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

関連情報