Widely available すべての主要ブラウザで対応済み。安心して使用可能。

対応ブラウザ

機能 デスクトップ モバイル
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
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 2件
実装メモ
  • Firefox 12 以前では、予期しないエラーや未定義のエラー状態によりチャネルが閉じられた場合、終了コード `CLOSE_NORMAL` が使用されていました。
  • Firefox 8以前では、`WebSocket`のcloseイベントは単純なイベントとしてリスナーに送信されていました。
注釈 3件
削除済み
  • このバージョンで機能が削除されました (11)
対応条件
  • ベンダープレフィックス付きで対応: Moz (7)
実装メモ
  • メッセージのサイズは16 MBまでです(バグ711205を参照)。
注釈 6件
削除済み
  • このバージョンで機能が削除されました (18)
  • このバージョンで機能が削除されました (11)
  • このバージョンで機能が削除されました (8)
実装メモ
  • `ArrayBuffer` および `String` 型のパラメータのみがサポートされています。
  • `String`型のパラメータのみがサポートされています。
  • `String`型のパラメータのみサポートされています。`boolean`を返します。
注釈 2件
削除済み
  • このバージョンで機能が削除されました (11)
対応条件
  • ベンダープレフィックス付きで対応: Moz (7)

実務での使いどころ

  • WebSockets の活用

    CloseEvent は、接続が閉じられたときに WebSocket を使用してクライアントに送信されます。

注意点

  • 古いブラウザでは対応していない場合がある。

実装メモ

  • 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。