WebSocket

WebSocket オブジェクトは、サーバーへの WebSocket 接続の作成と管理、および接続上のデータの送受信に使用する API を提供します。

WebSocket を構築するには、 WebSocket() コンストラクターを使用してください。

コンストラクター

WebSocket(url[, protocols])
新しく作成された WebSocket オブジェクトを返します。

定数

定数
WebSocket.CONNECTING 0
WebSocket.OPEN 1
WebSocket.CLOSING 2
WebSocket.CLOSED 3

プロパティ

WebSocket.binaryType
接続で使用されるバイナリデータ型。
WebSocket.bufferedAmount 読取専用
キューに入れられたデータのバイト数。
WebSocket.extensions 読取専用
サーバーによって選択された拡張機能。
WebSocket.onclose
接続が閉じられたときに呼び出されるイベントリスナー。
WebSocket.onerror
エラーが発生したときに呼び出されるイベントリスナー。
WebSocket.onmessage
サーバーからメッセージを受信したときに呼び出されるイベントリスナー。
WebSocket.onopen
接続が開かれたときに呼び出されるイベントリスナー。
WebSocket.protocol 読取専用
サーバーによって選択されたサブプロトコル。
WebSocket.readyState 読取専用
接続の現在の状態。
WebSocket.url 読取専用
WebSocket の絶対 URL。

メソッド

WebSocket.close([code[, reason]])
接続を閉じます。
WebSocket.send(data)
送信するデータをキューに入れます。

イベント

これらのイベントを待ち受けするには、 addEventListener() を使用するか、イベントリスナーをこのインターフェイスの oneventname プロパティへ代入します。

close
WebSocket による接続が閉じたときに発生します。
onclose プロパティからも利用できます。
error
WebSocket による接続が、データの一部が送信できなかったなどのエラーのために閉じた時に発生します。
onerror プロパティからも利用できます。
message
WebSocket を通じてデータを受信したときに発生します。
onmessage プロパティからも利用できます。
open
WebSocket による接続が開いたときに発生します。
onopen プロパティからも利用できます。

// WebSocket 接続を作成
const socket = new WebSocket('ws://localhost:8080');

// 接続が開いたときのイベント
socket.addEventListener('open', function (event) {
    socket.send('Hello Server!');
});

// メッセージの待ち受け
socket.addEventListener('message', function (event) {
    console.log('Message from server ', event.data);
});

仕様書

仕様書 状態
HTML Living Standard
WebSocket の定義
現行の標準

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
WebSocketChrome 完全対応 4Edge 完全対応 12Firefox 完全対応 11
完全対応 11
未対応 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 完全対応 あり

凡例

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

関連情報