WebSocket

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

* Some parts of this feature may have varying levels of support.

Note: This feature is available in Web Workers.

Đối tượng WebSocket cung cấp API để tạo và quản lý một kết nối WebSocket tới máy chủ, đồng thời gửi và nhận dữ liệu qua kết nối đó.

Để tạo một WebSocket, hãy dùng constructor WebSocket().

Note: API WebSocket không có cách nào áp dụng backpressure, vì vậy khi thông điệp đến nhanh hơn tốc độ ứng dụng có thể xử lý, ứng dụng sẽ làm đầy bộ nhớ thiết bị bằng cách đệm các thông điệp đó, trở nên không phản hồi do dùng 100% CPU, hoặc cả hai. Nếu bạn cần một lựa chọn tự động hỗ trợ backpressure, hãy xem WebSocketStream.

EventTarget WebSocket

Constructor

WebSocket()

Trả về một đối tượng WebSocket mới được tạo.

Thuộc tính thể hiện

WebSocket.binaryType

Kiểu dữ liệu nhị phân được dùng cho kết nối.

WebSocket.bufferedAmount Read only

Số byte dữ liệu đang được xếp hàng.

WebSocket.extensions Read only

Các tiện ích được máy chủ chọn.

WebSocket.protocol Read only

Giao thức phụ được máy chủ chọn.

WebSocket.readyState Read only

Trạng thái hiện tại của kết nối.

WebSocket.url Read only

URL tuyệt đối của WebSocket.

Phương thức thể hiện

WebSocket.close()

Đóng kết nối.

WebSocket.send()

Xếp hàng dữ liệu để truyền đi.

Sự kiện

Hãy lắng nghe các sự kiện này bằng addEventListener() hoặc bằng cách gán trình xử lý sự kiện vào thuộc tính oneventname của giao diện này.

close

Được kích hoạt khi kết nối WebSocket bị đóng. Cũng có sẵn qua thuộc tính onclose.

error

Được kích hoạt khi kết nối WebSocket bị đóng do lỗi, chẳng hạn khi một số dữ liệu không thể được gửi. Cũng có sẵn qua thuộc tính onerror.

message

Được kích hoạt khi dữ liệu được nhận qua WebSocket. Cũng có sẵn qua thuộc tính onmessage.

open

Được kích hoạt khi kết nối WebSocket được mở. Cũng có sẵn qua thuộc tính onopen.

Ví dụ

js
// Tạo kết nối WebSocket.
const socket = new WebSocket("ws://localhost:8080");

// Kết nối đã mở
socket.addEventListener("open", (event) => {
  socket.send("Hello Server!");
});

// Lắng nghe thông điệp
socket.addEventListener("message", (event) => {
  console.log("Thông điệp từ máy chủ ", event.data);
});

Thông số kỹ thuật

Specification
WebSockets
# the-websocket-interface

Tương thích trình duyệt

Xem thêm