WebSocket: close() メソッド
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.
WebSocket.close()
メソッドは、 WebSocket
の接続、もしくは接続試行(存在した場合)を閉じます。接続がすでに CLOSED
だった場合、このメソッドは何もしません。
メモ:
接続を閉じるプロセスはクロージングハンドシェイクで始まり、 close()
メソッドはそのクロージングハンドシェイクを開始する前に以前に送信したメッセージを破棄しません。たとえユーザーエージェントがまだそれらのメッセージを送信するのに忙しい場合でも、ハンドシェイクはメッセージが送信されてから開始されます。
構文
close()
close(code)
close(code, reason)
引数
code
省略可-
整数の WebSocket 接続クローズコードの値で、閉じられた理由を示します。
- 指定されていない場合、接続のクローズコードが自動的に設定されます。通常のクローズの場合は
1000
に、そうでなければ1001
-1015
の範囲の他の標準値に、接続が閉じられた実際の理由を示すコードが設定されます。 - 指定された場合、この
code
引数の値は、接続のためのクローズコードの自動設定を上書きし、代わりにカスタムコードを設定します。 この値は整数でなければなりません。1000
か、あるいは3000
から4999
までの範囲で選択したカスタムコードでなければなりません。code
値を指定する場合は、reason
値も指定しなければなりません。
- 指定されていない場合、接続のクローズコードが自動的に設定されます。通常のクローズの場合は
reason
省略可-
独自の WebSocket 接続が閉じた理由を提供する文字列(閉じたことについて簡潔で人間が読める散文的な説明)。この値は 123 バイト以下でなければなりません(UTF-8 でエンコードされます)。
メモ: UTF-8 は 2 から 4 バイトを使用するため、 ASCII 以外の文字をエンコードすると、 123 文字の
reason
値に ASCII 以外の文字が入っていると、 123 バイトの制限を超える可能性があります。reason
の値を指定する場合は、code
の値も指定してください。
返値
なし (undefined
)。
例外
InvalidAccessError
DOMException
-
code
が1000
と等しい整数でも、3000
–4999
の範囲の整数でもない場合に発生します。 SyntaxError
DOMException
-
UTF-8 でエンコードされた
reason
が 123 バイトよりも長かった場合。
仕様書
Specification |
---|
WebSockets Standard # ref-for-dom-websocket-close① |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- RFC 6455 (WebSocket プロトコル仕様書)