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

View in English Always switch to English

WebSocketStream: opened プロパティ

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

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

openedWebSocketStream インターフェイスの読み取り専用プロパティは、ソケット接続が正常に開かれた時点で、オブジェクトを解決する Promise を返します。このオブジェクトには、接続上でデータを受信および送信するための ReadableStream および WritableStream インスタンスが含まれています。

プロミスであり、次のプロパティを含むオブジェクトで履行されます。

extensions

WebSocketStreamに適用された拡張を表す文字列。このような拡張は現在定義されていませんが、将来定義される可能性があります。現在は空文字列を返します。

protocol

現在の WebSocket 接続を開くためのサブプロトコルを表す文字列(WebSocketStream() コンストラクターの protocols オプションで指定する選択肢から選べます)。接続を開くためのサブプロトコルが使用されていない場合(つまり、コンストラクター呼び出しにサブプロトコルオプションが記載されていない場合)、空文字列を返します。

readable

ReadableStream のインスタンス。これに ReadableStream.getReader() を呼び出すと、受信する WebSocket データを読み取るために使用できる ReadableStreamDefaultReader のインスタンスを取得できます。

writable

WritableStream インスタンス。これに WritableStream.getWriter() を呼び出すと、 WebSocket 接続にデータを書き込むために使用できる WritableStreamDefaultWriter インスタンスを取得できます。

WebSocket 接続が失敗した場合、プロミスは拒否されます。

js
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 を参照してください。

ブラウザーの互換性

関連情報