WebSocketStream: opened 屬性
注意:此功能在 Web Workers 中可用。
WebSocketStream 介面的只讀屬性 opened 返回一個 Promise,該 Promise 在 socket 連線成功開啟後 fulfilled,幷包含一個物件。該物件除了其他功能外,還包含一個用於在連線上接收和傳送資料的 ReadableStream 和一個 WritableStream 例項。
值
一個 Promise,它 fulfilled 後會返回一個包含以下屬性的物件:
擴充套件-
一個字串,表示應用於
WebSocketStream的任何擴充套件。目前尚未定義此類擴充套件,但未來可能會定義。當前返回空字串。 協議-
一個字串,表示用於開啟當前 WebSocket 連線的子協議(從
WebSocketStream()建構函式的protocols選項中選擇)。如果未使用任何子協議開啟連線(即,建構函式呼叫中未包含任何子協議選項),則返回空字串。 readable-
一個
ReadableStream例項。在其上呼叫ReadableStream.getReader()以獲取一個ReadableStreamDefaultReader例項,該例項可用於讀取傳入的 WebSocket 資料。 可寫-
一個
WritableStream例項。在其上呼叫WritableStream.getWriter()以獲取一個WritableStreamDefaultWriter例項,該例項可用於將資料寫入 WebSocket 連線。
如果 WebSocket 連線失敗,Promise 將 rejected。
示例
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。
瀏覽器相容性
載入中…
另見
- WebSocketStream:將流與 WebSocket API 整合,developer.chrome.com (2020)