WebSockets はユーザのブラウザとサーバ間でインタラクティブな通信セッションを開くことを可能にする先進技術です。この API でメッセージをサーバに送ることが出来、応答のためにサーバーをポーリングすることなく、イベントドリブンなレスポンスを受信できます。

インターフェイス

WebSocket
WebSocket サーバに接続し、その接続を通じてデータを送受信するための主要インターフェイス
CloseEvent
接続が閉じた時に WebSocket オブジェクトによって送信されるイベント
MessageEvent
サーバからメッセージを受信した時に WebSocket オブジェクトによって送信されるイベント

ツール

  • µWebSockets: C++11 and Node.jsで書かれた可用性の高いWebSocketサーバーとクライアントの実装です。
  • Socket.IO : Node.js 用の強力なクロスプラットフォーム WebSocket API
  • WebSocket-Node: Node.js 用の WebSocket server API 実装
  • Total.js: Node.js 用の ウェブアプリケーションフレームワーク(使用例: WebSocket chat)
  • Faye: Node.js 用の WebSocket(両方向接続)と EventSource(片方向接続)サーバおよびクライアント
  • SignalR: SignalR は単一のコードだけで、もしWebSocketsが使用可能な場合、基盤として WebSockets を使用し、そうでない場合はほかの代替技術にフォールバックします。

関連情報

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
Version -76 のサポート 6 4.0 (2.0) 未サポート 11.00 (disabled) 5.0.1
Protocol version 7 のサポート 未サポート 6.0 (6.0)
Moz
未サポート 未サポート 未サポート
Protocol version 10 のサポート 14 7.0 (7.0)
Moz
HTML5 Labs ? ?
Standard - RFC 6455 のサポート 16 11.0 (11.0) 10 12.10 6.0
Worker での使用 (有) 37.0 (37.0) ? ? ?
機能 Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Version -76 のサポート ? ? ? ? ?
Protocol version 7 のサポート ? ? ? ? ?
Protocol version 8 のサポート (IETF draft 10) ? 7.0 (7.0) ? ? ?
Standard - RFC 6455 のサポート 16 (Chrome) 11.0 (11.0) ? 12.10 6.0
Worker での使用 (有) 37.0 (37.0) ? ? ?

Gecko に関する注記

Firefox の WebSockets サポートは、進展する WebSocket 仕様への追従を継続しています。Firefox 6 は基礎的なプロトコルのバージョン 7 を実装し、また Firefox 7 はバージョン 8 (IETF ドラフト 10 で定義) を実装しました。モバイル版では、モバイル Firefox 7.0 で WebSocket がサポートされました。

Gecko 6.0

Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3) より前のバージョンでは誤って WebSocket オブジェクトが存在しており、一部のサイトが WebSocket サービスは接頭辞がつかないものであると考えていました。このオブジェクトは MozWebSocket に改名されました。

Gecko 7.0

Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) より設定項目 network.websocket.max-connections が、一度に開くことができる WebSocket 接続の最大数を決めるために使用されます。この既定値は 200 です。

Gecko 8.0

Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5) より WebSocket プロトコルの deflate-stream 拡張が、ドラフト仕様で非推奨とされたため無効になりました。これは一部のサイトとの非互換問題を解決します。

Gecko 11.0

Gecko 11.0 より前は、受信および送信メッセージのサイズを 16MB に制限していました。このサイズを 2GB に引き上げることができます。ただし、(特にモバイルデバイスで) メモリ容量の制限によって、これはあくまで理論上の上限となり、実用上の上限とはなりません。実際、十分なメモリを持たないデバイスでは、大きなサイズのメッセージの転送が失敗します。

加えて、バイナリデータ向けに ArrayBuffer の送信と受信のサポートを実装しました。

Gecko 11.0 より、WebSocket API に接頭辞はつきません。

ドキュメントのタグと貢献者

このページの貢献者: lv7777, hamasaki, teoli, ethertank, yyss
最終更新者: lv7777,