このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

WebSocketStream: WebSocketStream() コンストラクター

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

メモ: この機能はウェブワーカー内で利用可能です。

WebSocketStream() コンストラクターは、新しい WebSocketStream オブジェクトインスタンスを生成します。

構文

js
new WebSocketStream(url)
new WebSocketStream(url, options)

引数

url

文字列で、この WebSocketStream インスタンスで接続する WebSocket サーバーの URL を表します。許可される URL スキームは "ws"、"wss"、"http"、"https" です。

options 省略可

次のプロパティが含まれているオブジェクトです。

protocols 省略可

単一の文字列または文字列の配列で、クライアントが使用したいサブプロトコルを表します。例えば "amqp" や "mqtt" などです。サブプロトコルは、IANA WebSocket Subprotocol Name Registry から選択するか、クライアントとサーバー間で合意された独自の名前を使用することもできます。単一のサーバーで複数の WebSocket サブプロトコルを実装し、指定された値に応じて異なる種類のやり取りを処理できます。省略した場合、既定では空の配列が使用されます。 protocols が含まれており、かつサーバーがこれらのサブプロトコルのいずれかを選択したと報告した場合にのみ、接続が確立されます。

signal 省略可

AbortSignal で、ハンドシェイクが完了する前(つまり、opened プロミスが解決する前)に接続を中止するために使用できるものです。これは主に接続タイムアウトを実装するのに役立つものです。そのため、接続が確立された後では何も行いません。

例外

SyntaxError DOMException

URL スキームが "ws"、"wss"、"http"、"https" のいずれでもない場合に発生します。

例

WebSocketStream を作成

最も基本的な例は、 WebSocket サーバーの URL を引数として取ります。

js
const wss = new WebSocketStream("wss://example.com/wss");

WebSocketStream を接続タイムアウト付きで作成

次の例では、signal オプションを使用して、接続が 5 秒以内に確立されない場合のタイムアウトを実装しています。

js
const queueWSS = new WebSocketStream("wss://example.com/queue", {
  signal: AbortSignal.timeout(5000),
});

localhost に接続する場合、接続試行がタイムアウトする前に成功または失敗する可能性が高いことに注意してください。

接続が確立されると、 signal は何も効果がありません。既に確立された接続を閉じるには、WebSocketStream.close() メソッドを呼び出してください。基盤となる WritableStream または WritableStreamDefaultWriter を閉じることで、ソケットを閉じることも可能です。

全ての説明付きの完全な例については、 WebSocketStream でクライアントを書くを参照してください。

仕様書

現在、どの仕様にも属していません。標準化の進捗状況については https://github.com/whatwg/websockets/pull/48 を参照してください。

WebSocketStream API design.

ブラウザーの互換性

関連情報