WebTransportDatagramDuplexStream

Baseline 2026 *
Newly available

Since March 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Giao diện WebTransportDatagramDuplexStream của WebTransport API đại diện cho một luồng song công có thể được sử dụng để truyền tải không đáng tin cậy các datagram giữa client và server. Cung cấp quyền truy cập vào ReadableStream để đọc các datagram đến, WritableStream để ghi các datagram đi, cùng với nhiều cài đặt và thống kê liên quan đến luồng.

Giao diện này được truy cập thông qua thuộc tính WebTransport.datagrams.

"Không đáng tin cậy" có nghĩa là việc truyền dữ liệu không được đảm bảo, và cũng không đảm bảo thứ tự đến. Điều này phù hợp trong một số tình huống và cung cấp khả năng truyền rất nhanh. Ví dụ, bạn có thể muốn truyền các bản cập nhật trạng thái trò chơi thường xuyên, nơi mỗi thông điệp thay thế thông điệp trước đó và thứ tự không quan trọng.

Thuộc tính phiên bản

incomingHighWaterMark

Lấy hoặc đặt mức nước cao cho các chunk dữ liệu đến, đây là kích thước tối đa, tính bằng số chunk, mà hàng đợi nội bộ của ReadableStream đến có thể đạt đến trước khi được coi là đầy. Xem Hàng đợi nội bộ và chiến lược xếp hàng để biết thêm thông tin.

incomingMaxAge

Lấy hoặc đặt thời gian tối đa cho các datagram đến, tính bằng miligiây. Trả về null nếu chưa đặt thời gian tối đa.

maxDatagramSize Read only

Trả về kích thước tối đa cho phép của các datagram đi, tính bằng byte, có thể được ghi vào writable.

outgoingHighWaterMark

Lấy hoặc đặt mức nước cao cho các chunk dữ liệu đi, đây là kích thước tối đa, tính bằng số chunk, mà hàng đợi nội bộ của WritableStream đi có thể đạt đến trước khi được coi là đầy. Xem Hàng đợi nội bộ và chiến lược xếp hàng để biết thêm thông tin.

outgoingMaxAge

Lấy hoặc đặt thời gian tối đa cho các datagram đi, tính bằng miligiây. Trả về null nếu chưa đặt thời gian tối đa.

readable Read only

Trả về một đối tượng ReadableStream có thể được sử dụng để đọc các datagram đến từ luồng.

writable Read only Deprecated Non-standard

Trả về một đối tượng WritableStream có thể được sử dụng để ghi các datagram đi vào luồng.

Ví dụ

Ghi các datagram đi

Thuộc tính writable trả về một đối tượng WritableStream mà bạn có thể ghi dữ liệu vào bằng writer, để truyền đến server:

js
const writer = transport.datagrams.writable.getWriter();
const data1 = new Uint8Array([65, 66, 67]);
const data2 = new Uint8Array([68, 69, 70]);
writer.write(data1);
writer.write(data2);

Đọc các datagram đến

Thuộc tính readable trả về một đối tượng ReadableStream mà bạn có thể sử dụng để nhận dữ liệu từ server:

js
async function readData() {
  const reader = transport.datagrams.readable.getReader();
  while (true) {
    const { value, done } = await reader.read();
    if (done) {
      break;
    }
    // value is a Uint8Array.
    console.log(value);
  }
}

Thông số kỹ thuật

Specification
WebTransport
# webtransportdatagramduplexstream

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

Xem thêm