WebSockets
CloseEvent は、接続が閉じられたときに WebSocket を使用してクライアントに送信されます。これは WebSocket オブジェクトの onclose 属性で指定されたリスナーに配信されます。
Event CloseEvent
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 15 | 12 | 8 | 6 | 18 | 6 | |
| CloseEvent() コンストラクターは新しい CloseEvent オブジェクトを生成します。 | 16 | 14 | 11 | 6 | 18 | 6 |
| code は CloseEvent インターフェイスの読み取り専用プロパティで、サーバーが接続を閉じた理由を示す WebSocket 接続クローズコードを返します。 | 15 | 12 | 8 | 6 | 18 | 6 |
| reason は CloseEvent インターフェイスの読み取り専用プロパティで、サーバーが接続を閉じる際に示した WebSocket 接続が閉じた理由を返します。つまり、閉じたことについての簡潔で人間が読める散文的な説明です。 | 15 | 12 | 8 | 6 | 18 | 6 |
| wasClean は CloseEvent インターフェイスの読み取り専用プロパティで、接続がきれいに閉じられた場合は true を返します。 | 15 | 12 | 8 | 6 | 18 | 6 |
| WebSocket オブジェクトは、サーバーへの WebSocket 接続の作成と管理、および接続上のデータの送受信に使用する API を提供します。 | 5 | 12 | 11 | 5 | 18 | 4.2 |
| WebSocket.binaryType プロパティは、この WebSocke 接続によって受信されているバイナリーデータの型を制御します。 | 15 | 12 | 11 | 6 | 18 | 6 |
| WebSocket.bufferedAmount は読み取り専用のプロパティで、 send() の呼び出しによってキューに入れられてはいますが、まだネットワークに送信されていないデータのバイト数を返します。この値は、一度キューに入れられたデータすべてが送信されると 0 にリセットされます。なお、接続が閉じられたときは、 0 にリセットされません。 send() を呼び出し続けると、この値は大きくなっていきます。 | 5 | 12 | 7 | 5 | 18 | 4.2 |
| WebSocket.close() メソッドは、 WebSocket の接続、もしくは接続試行(存在した場合)を閉じます。接続がすでに CLOSED だった場合、このメソッドは何もしません。 | 5 | 12 | 7 | 5 | 18 | 4.2 |
| close イベントは、 WebSocket の接続が閉じられたときに発生します。 | 5 | 12 | 7 | 5 | 18 | 4.2 |
| error イベントは、 WebSocket の接続がエラーによって閉じられた(例えば一部のデータを送信できなかった)ときに発生します。 | 5 | 12 | 7 | 5 | 18 | 4.2 |
| WebSocket.extensions は読み取り専用のプロパティで、サーバーによって選択された拡張機能を返します。現在は、空文字列か、接続によってネゴシエートされた拡張機能のリストのみを返します。 | 16 | 12 | 8 | 6 | 18 | 6 |
| message イベントは、 WebSocket を通してデータを受け取ったときに発生します。 | 5 | 12 | 7 | 5 | 18 | 4.2 |
| open イベントは、 WebSocket のコネクションが開かれたときに発生します。 | 5 | 12 | 7 | 5 | 18 | 4.2 |
| WebSocket.protocol は読み取り専用のプロパティで、サーバーが選択したサブプロトコル名を返します。これは WebSocket オブジェクトが作成されるときに、引数の protocols で指定された文字列のいずれかになりますが、接続が確立されていない場合は、空文字列となります。 | 15 | 12 | 7 | 6 | 18 | 6 |
protocol_rfc_6455 RFC 6455で規定されたプロトコルに対応しています | 16 | 12 | 11 | 6 | 18 | 6 |
| WebSocket.readyState は読み取り専用のプロパティで、 WebSocket の「現在」の接続状態を返します。 | 5 | 12 | 7 | 5 | 18 | 4.2 |
| WebSocket.send() メソッドは、 WebSocket 接続を介してサーバーに送るために指定されたデータを、格納するために必要なバイト数だけ bufferedAmount の値を増加させながらキューに入れます。もしデータが送信できなかった場合(例えば、バッファリングが必要だが、バッファが一杯であるなどの理由で)、ソケットは自動的に閉じられます。 接続が CONNECTING 状態のときに send() を呼び出すと、ブラウザーは例外を発生させます。接続が CLOSING または CLOSED の状態のときに send() を呼び出すと、ブラウザーはデータを暗黙に破棄します。 | 5 | 12 | 18 | 5 | 18 | 4.2 |
| WebSocket.url は読み取り専用のプロパティで、コンストラクターによって解決された WebSocket の絶対 URL を返します。 | 18 | 12 | 7 | 6 | 18 | 6 |
| WebSocket() コンストラクターは、新しい WebSocket オブジェクトを返し、指定された WebSocket URL への接続を直ちに確立しようとします。 | 5 | 12 | 11 | 5 | 18 | 4.2 |
WebSocket (url parameter http https relative) `url` パラメータでは、`https`、`http`、および相対URLが使用可能です | 125 | 125 | 124 | 17.3 | 125 | 17.3 |
worker_support 労働者で利用可能 | 5 | 12 | 37 | 5 | 18 | 5 |
WebSocketError 実験的 | 124 | 124 | | | 124 | |
closeCode 実験的 | 124 | 124 | | | 124 | |
reason 実験的 | 124 | 124 | | | 124 | |
WebSocketError 実験的 `WebSocketError()` コンストラクタ | 124 | 124 | | | 124 | |
| その他 | ||||||
| HTTPの「Sec-WebSocket-Accept」レスポンスヘッダーは、WebSocketの接続確立時のハンドシェイクにおいて、サーバーがWebSocket接続へのアップグレードを受け入れることを示すために使用されます。 | 16 | 12 | 11 | 6 | 18 | 6 |
| HTTPの「Sec-WebSocket-Extensions」リクエストヘッダーおよびレスポンスヘッダーは、WebSocketの接続確立時のハンドシェイクにおいて、クライアントとサーバーが使用するプロトコル拡張機能をネゴシエートするために使用されます。 | 16 | 12 | 11 | 6 | 18 | 6 |
| HTTPの「Sec-WebSocket-Key」リクエストヘッダーは、WebSocketの接続確立時のハンドシェイクで使用され、クライアント(ユーザーエージェント)が、HTTPクライアントをWebSocketクライアントにアップグレードすることを「本当に希望している」ことを確認できるようにするためのものです。 | 16 | 12 | 11 | 6 | 18 | 6 |
| HTTPの「Sec-WebSocket-Protocol」リクエストヘッダーおよびレスポンスヘッダーは、WebSocketの接続確立時のハンドシェイクにおいて、通信に使用するサブプロトコルをネゴシエートするために使用されます。これには、SOAPやWAMPのような広く認知されたプロトコルや、クライアントとサーバーが互いに理解できるカスタムプロトコルが含まれます。 | 16 | 12 | 11 | 6 | 18 | 6 |
| HTTPの「Sec-WebSocket-Version」リクエストヘッダーおよびレスポンスヘッダーは、WebSocketの接続確立時のハンドシェイクにおいて、クライアントがサポートするWebSocketプロトコルを示すために使用されます。また、サーバーがリクエストで指定されたバージョンをサポートしていない場合、サーバーがサポートするプロトコルのバージョンを示すためにも使用されます。 | 16 | 12 | 11 | 6 | 18 | 6 |
- Firefox 12 以前では、予期しないエラーや未定義のエラー状態によりチャネルが閉じられた場合、終了コード `CLOSE_NORMAL` が使用されていました。
- Firefox 8以前では、`WebSocket`のcloseイベントは単純なイベントとしてリスナーに送信されていました。
- このバージョンで機能が削除されました (11)
- ベンダープレフィックス付きで対応: Moz (7)
- メッセージのサイズは16 MBまでです(バグ711205を参照)。
- このバージョンで機能が削除されました (18)
- このバージョンで機能が削除されました (11)
- このバージョンで機能が削除されました (8)
- `ArrayBuffer` および `String` 型のパラメータのみがサポートされています。
- `String`型のパラメータのみがサポートされています。
- `String`型のパラメータのみサポートされています。`boolean`を返します。
- このバージョンで機能が削除されました (11)
- ベンダープレフィックス付きで対応: Moz (7)
実務での使いどころ
-
WebSockets の活用
CloseEvent は、接続が閉じられたときに WebSocket を使用してクライアントに送信されます。
注意点
- 古いブラウザでは対応していない場合がある。
実装メモ
- 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。