WebSocketStream: thuộc tính opened
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.
Thuộc tính chỉ đọc opened của giao diện WebSocketStream trả về một Promise được thực thi với một đối tượng khi kết nối socket mở thành công. Trong số các tính năng khác, đối tượng này chứa một thể hiện ReadableStream và WritableStream để nhận và gửi dữ liệu trên kết nối.
Giá trị
Một promise, sẽ được thực thi với một đối tượng chứa các thuộc tính sau:
extensions-
Một chuỗi biểu thị các extension đã áp dụng cho
WebSocketStream. Hiện tại các extension này chưa được định nghĩa, nhưng có thể sẽ có trong tương lai. Hiện trả về một chuỗi rỗng. protocol-
Một chuỗi biểu thị sub-protocol được dùng để mở kết nối WebSocket hiện tại (được chọn từ các tùy chọn được chỉ định trong tùy chọn
protocolscủa constructorWebSocketStream()). Trả về một chuỗi rỗng nếu không dùng sub-protocol nào để mở kết nối (tức là không có tùy chọn sub-protocol nào được đưa vào lời gọi constructor). readable-
Một thể hiện
ReadableStream. GọiReadableStream.getReader()trên nó để lấy một thể hiệnReadableStreamDefaultReadercó thể dùng để đọc dữ liệu WebSocket đến. writable-
Một thể hiện
WritableStream. GọiWritableStream.getWriter()trên nó để lấy một thể hiệnWritableStreamDefaultWritercó thể dùng để ghi dữ liệu vào kết nối WebSocket.
Promise sẽ bị reject nếu kết nối WebSocket thất bại.
Ví dụ
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);
}
}
Xem Using WebSocketStream to write a client để biết ví dụ đầy đủ với giải thích chi tiết.
Thông số kỹ thuật
Hiện chưa thuộc bất kỳ đặc tả nào. Xem https://github.com/whatwg/websockets/pull/48 để theo dõi tiến trình chuẩn hóa.
Tương thích trình duyệt
Xem thêm
- WebSocketStream: tích hợp streams với WebSocket API, developer.chrome.com (2020)