WebSocketStream: opened プロパティ
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
メモ: この機能はウェブワーカー内で利用可能です。
opened
は WebSocketStream
インターフェイスの読み取り専用プロパティは、ソケット接続が正常に開かれた時点で、オブジェクトを解決する Promise
を返します。このオブジェクトには、接続上でデータを受信および送信するための ReadableStream
および WritableStream
インスタンスが含まれています。
値
プロミスであり、次のプロパティを含むオブジェクトで履行されます。
extensions
-
WebSocketStream
に適用された拡張を表す文字列。このような拡張は現在定義されていませんが、将来定義される可能性があります。現在は空文字列を返します。 protocol
-
現在の WebSocket 接続を開くためのサブプロトコルを表す文字列(
WebSocketStream()
コンストラクターのprotocols
オプションで指定する選択肢から選べます)。接続を開くためのサブプロトコルが使用されていない場合(つまり、コンストラクター呼び出しにサブプロトコルオプションが記載されていない場合)、空文字列を返します。 readable
-
ReadableStream
のインスタンス。これにReadableStream.getReader()
を呼び出すと、受信する WebSocket データを読み取るために使用できるReadableStreamDefaultReader
のインスタンスを取得できます。 writable
-
WritableStream
インスタンス。これにWritableStream.getWriter()
を呼び出すと、 WebSocket 接続にデータを書き込むために使用できるWritableStreamDefaultWriter
インスタンスを取得できます。
WebSocket 接続が失敗した場合、プロミスは拒否されます。
例
const wsURL = "wss://127.0.0.1/";
const wss = new WebSocketStream(wsURL);
async function start() {
const { readable, writable, extensions, protocol } = await wss.opened;
const reader = readable.getReader();
const writer = writable.getWriter();
writer.write("ping");
while (true) {
const { value, done } = await reader.read();
if (done) {
break;
}
setTimeout(() => {
writer.write("ping");
}, 5000);
}
}
全ての説明付きの完全な例については、 WebSocketStream でクライアントを書くを参照してください。
仕様書
現在、どの仕様にも属していません。標準化の進捗状況については https://github.com/whatwg/websockets/pull/48 を参照してください。
ブラウザーの互換性
Loading…
関連情報
- WebSocketStream: integrating streams with the WebSocket API, developer.chrome.com (2020)