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 でエンコードされます)。
メモ: ASCII 以外の文字をエンコードするのに UTF-8 は 2 から 4 バイトを使用するため、 123 文字の
reason
値に ASCII 以外の文字が入っていると、 123 バイトの制限を超える可能性があります。reason
の値を指定する場合は、code
の値も指定してください。
返値
なし (undefined
)。
例外
InvalidAccessError
DOMException
-
code
が1000
と等しい整数でも、3000
–4999
の範囲の整数でもない場合に発生します。 SyntaxError
DOMException
-
UTF-8 でエンコードされた
reason
が 123 バイトよりも長かった場合。
仕様書
Specification |
---|
WebSockets # ref-for-dom-websocket-close① |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- RFC 6455 (WebSocket プロトコル仕様書)