WebSocket API (WebSockets)

WebSocket API は、ユーザーのブラウザーとサーバー間で対話的な通信セッションを開くことができる先進技術です。この API によって、サーバーにメッセージを送信したり、応答をサーバーにポーリングすることなく、イベント駆動型のレスポンスを受信したりすることができます。

メモ: WebSocket のコネクションは機能的にどこか標準 Unix スタイルのソケットに似ていますが、関連はありません。

インターフェイス

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

ガイド

ツール

  • HumbleNet: ブラウザーで動作するクロスプラットフォームのネットワークライブラリです。ブラウザー間の違いを抽象化する WebSocket や WebRTC の C ラッパー、ゲームやその他のアプリで複数ユーザーのネットワーク機能を作成するものから成ります。
  • µWebSockets: C++11 および Node.js で書かれた可用性の高い WebSocket サーバーとクライアントの実装です。
  • ClusterWS: Node.js でスケーラブルな WebSocket アプリケーションを構築する、軽量で高速で強力なフレームワークです。
  • CWS: Node.js のための高速な C++ による WebSocket の実装です (uWebSockets v0.14 のフォーク)
  • Socket.IO: 長いポーリングと WevSocket ベースのサードバーティ―の Node.js 用転送プロトコルです。
  • SocketCluster: スケーラビリティに焦点を当てた Node.js 用の pub/sub WebSocket フレームワークです。
  • WebSocket-Node: Node.js 用の WebSocket サーバー API 実装です。
  • Total.js: Node.js 用の ウェブアプリケーションフレームワーク(使用例: WebSocket chat)
  • Faye: Node.js 用の WebSocket (双方向接続) と EventSource (片方向接続) サーバーおよびクライアント
  • SignalR: SignalR は単一のコードだけで、もし WebSockets が使用可能な場合、基盤として WebSockets を使用し、そうでない場合はほかの代替技術にフォールバックします。
  • Caddy: WebSocket として任意のコマンド (stdin/stdout) を中継することができるウェブサーバーです。
  • ws: Node.js のための有名な WebSocket クライアント&サーバーライブラリです。
  • jsonrpc-bidirectional: 非同期の RPC で、単一の接続を用いて、サーバー上にエクスポートされた機能と、同時にクライアント上のものがあります (クライアントがサーバーを呼び出すことができ、サーバーもクライアントを呼び出すことができます)。
  • cowboy: Cowboy は高速で最新の HTTP サーバーで、 Erlang/OTP のためのものであり、 WebSocket に対応しています。

仕様書

仕様書 状態 備考
HTML Living Standard
WebSocket API の定義
現行の標準
WebSockets Candidate Recommendation
RFC 6455: The WebSocket Protocol IETF RFC

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
WebSocketChrome 完全対応 4Edge 完全対応 12Firefox 完全対応 11
補足
完全対応 11
補足
補足 See bug 695635.
未対応 7 — 11
接頭辞付き 補足
接頭辞付き Moz のベンダー接頭辞が必要
補足 Message size limited to 16 MB (see bug 711205).
未対応 4 — 6
補足
補足 Message size limited to 16 MB (see bug 711205).
IE 完全対応 10Opera 完全対応 12.1Safari 完全対応 5WebView Android 完全対応 ≤37Chrome Android 完全対応 18Firefox Android 完全対応 14
補足
完全対応 14
補足
補足 See bug 695635.
未対応 7 — 14
接頭辞付き 補足
接頭辞付き Moz のベンダー接頭辞が必要
補足 Message size limited to 16 MB (see bug 711205).
未対応 4 — 6
補足
補足 Message size limited to 16 MB (see bug 711205).
Opera Android 完全対応 12.1Safari iOS 完全対応 4.2Samsung Internet Android 完全対応 1.0
WebSocket() constructorChrome 完全対応 ありEdge 完全対応 ≤79Firefox 完全対応 7
完全対応 7
未対応 4 — 7
補足
補足 Parameter protocols not supported.
IE ? Opera 完全対応 ありSafari ? WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 7Opera Android ? Safari iOS ? Samsung Internet Android 完全対応 あり
binaryTypeChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
bufferedAmountChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
closeChrome 完全対応 4Edge 完全対応 12Firefox 完全対応 8
完全対応 8
未対応 4 — 8
補足
補足 Parameters not supported, see bug 674716.
IE 完全対応 10Opera 完全対応 12.1Safari 完全対応 5WebView Android 完全対応 ≤37Chrome Android 完全対応 18Firefox Android 完全対応 8
完全対応 8
未対応 4 — 8
補足
補足 Parameters not supported, see bug 674716.
Opera Android 完全対応 12.1Safari iOS 完全対応 4.2Samsung Internet Android 完全対応 1.0
close eventChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari ? WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android ? Safari iOS ? Samsung Internet Android 完全対応 あり
error eventChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari ? WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android ? Safari iOS ? Samsung Internet Android 完全対応 あり
extensionsChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 8IE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 8Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
message eventChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari ? WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android ? Safari iOS ? Samsung Internet Android 完全対応 あり
oncloseChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
onerrorChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
onmessageChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
onopenChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
open eventChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari ? WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android ? Safari iOS ? Samsung Internet Android 完全対応 あり
protocolChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
Supports protocol as specified by RFC 6455Chrome 完全対応 16Edge 完全対応 12Firefox 完全対応 11IE 完全対応 10Opera 完全対応 15Safari 完全対応 6WebView Android 完全対応 ありChrome Android 完全対応 18Firefox Android 完全対応 14Opera Android 完全対応 14Safari iOS 完全対応 6Samsung Internet Android 完全対応 1.0
readyStateChrome 完全対応 43Edge 完全対応 12Firefox 完全対応 19IE 完全対応 10Opera 完全対応 30Safari 完全対応 10WebView Android 完全対応 43Chrome Android 完全対応 43Firefox Android 完全対応 19Opera Android 完全対応 30Safari iOS 完全対応 10Samsung Internet Android 完全対応 4.0
sendChrome 完全対応 4Edge 完全対応 12Firefox 完全対応 18
補足
完全対応 18
補足
補足 See bug 775368.
未対応 11 — 18
補足
補足 Only parameter of type ArrayBuffer and String supported.
未対応 8 — 11
補足
補足 Only parameter of type String supported.
未対応 4 — 8
補足
補足 Only parameter of type String supported. Returns boolean.
IE 完全対応 10Opera 完全対応 12.1Safari 完全対応 5WebView Android 完全対応 ≤37Chrome Android 完全対応 18Firefox Android 完全対応 18
補足
完全対応 18
補足
補足 See bug 775368.
未対応 14 — 18
補足
補足 Only parameter of type ArrayBuffer and String supported.
未対応 8 — 14
補足
補足 Only parameter of type String supported.
未対応 4 — 8
補足
補足 Only parameter of type String supported. Returns boolean.
Opera Android 完全対応 12.1Safari iOS 完全対応 4.2Samsung Internet Android 完全対応 1.0
urlChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
Available in workersChrome 完全対応 ありEdge 完全対応 ≤18Firefox 完全対応 37IE ? Opera ? Safari ? WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 37Opera Android ? Safari iOS ? Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

関連情報