Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Note: This feature is available in Web Workers.
The opened
read-only property of the WebSocketStream
interface returns a Promise
that fulfills with an object once the socket connection is successfully opened. Among other features, this object contains a ReadableStream
and a WritableStream
instance for receiving and sending data on the connection.
A promise, which fulfills with an object containing the following properties:
extensions
A string representing any extensions applied to the WebSocketStream
. Such extensions are not currently defined, but may be in the future. Currently returns an empty string.
protocol
A string representing the sub-protocol used to open the current WebSocket connection (chosen from the options specified in the protocols
option of the WebSocketStream()
constructor). Returns an empty string if no sub-protocol has been used to open the connection (i.e., no sub-protocol options were included in the constructor call).
readable
A ReadableStream
instance. Call ReadableStream.getReader()
on it to obtain a ReadableStreamDefaultReader
instance that can be used to read incoming WebSocket data.
writable
A WritableStream
instance. Call WritableStream.getWriter()
on it to obtain a WritableStreamDefaultWriter
instance that can be used to write data to the WebSocket connection.
The promise rejects if the WebSocket connection fails.
Examplesconst 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);
}
}
See Using WebSocketStream to write a client for a complete example with full explanation.
SpecificationsNot currently a part of any specification. See https://github.com/whatwg/websockets/pull/48 for standardization progress.
Browser compatibility See alsoRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4