--- title: WebSocket.send() slug: Web/API/WebSocket/send translation_of: Web/API/WebSocket/send ---

{{APIRef("Web Sockets API")}}

WebSocket.send() は WebSocket 接続を介してサーバーに送るために指定されたデータを、格納するために必要なバイト数だけ bufferedAmount の値を増加させながら、キューに入れるメソッドです。もしデータが送信できなかった場合(例えば、バッファリングが必要ですが、バッファが一杯であるなどの理由で)、ソケットは自動的に閉じられます。

構文

WebSocket.send("Hello server!");

引数

data
サーバーに送信するデータです。以下のいづれかのタイプのデータを指定します。
{{domxref("USVString")}}
テキスト文字列。文字列は、UTF-8 形式でバッファに追加され、bufferedAmount の値は UTF-8 の文字列を表すのに必要とされるバイト数だけ増えます。
{{domxref("ArrayBuffer")}}
型付きの配列オブジェクトで使用される基本的なバイナリデータを送信することができます。このバイナリデータのコンテンツは,必要なバイト数だけ bufferedAmount の値を増やして、バッファのキューに入れられます。
{{domxref("Blob")}}
Blob を指定すると、バイナリフレームで送信される blob の生データをキューに入れます。bufferedAmount の値は、その生データのバイトサイズだけ増えます。
{{domxref("ArrayBufferView")}}
JavaScriptで型付けされた配列オブジェクトをバイナリフレームとして送信することができます。このバイナリデータのコンテンツは,必要なバイト数だけ bufferedAmount の値を増やして、バッファのキューに入れられます。

投げられる例外

INVALID_STATE_ERR
接続が OPEN になっていない場合
SYNTAX_ERR
データが、ペアリングされていないサロゲートを持つ文字列の場合

注意: Gecko の send() メソッドの実装は、{{Gecko("6.0")}} の仕様とは多少異なります。 Geckoは、接続がまだ開いているかどうか(さらに、extension によって、データが正常にキューに入れられたか、もしくは送信されたかどうか)を示す boolean を返します。これは {{Gecko("8.0")}} で修正されています。

{{Gecko("11.0")}} では、{{jsxref("ArrayBuffer")}} のサポートは実装されていますが、{{domxref("Blob")}} データ型はサポートされていません。

仕様書

仕様書 状態 備考
{{SpecName('HTML WHATWG', '#dom-websocket-send', 'WebSocket: send')}} {{Spec2('HTML WHATWG')}} 初回定義

ブラウザ互換性

{{Compat("api.WebSocket.send")}}