WebSocket.close()
WebSocket.close() メソッドは、 WebSocket の接続、もしくは接続試行(存在した場合)を閉じます。接続がすでに CLOSED だった場合、このメソッドは何もしません。
メモ: 接続を閉じるプロセスはクロージングハンドシェイクで始まり、 close() メソッドはそのクロージングハンドシェイクを開始する前に以前に送信したメッセージを破棄しません。たとえユーザーエージェントがまだそれらのメッセージを送信するのに忙しい場合でも、ハンドシェイクはメッセージが送信されてから開始されます。
構文
js
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)。
例外
InvalidAccessErrorDOMException-
codeが1000と等しい整数でも、3000–4999の範囲の整数でもない場合に発生します。 SyntaxErrorDOMException-
UTF-8 でエンコードされた
reasonが 123 バイトよりも長かった場合。
仕様書
| Specification |
|---|
| WebSockets Standard # ref-for-dom-websocket-close① |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- RFC 6455 (WebSocket プロトコル仕様書)