RTCDataChannel: thuộc tính bufferedAmount
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Thuộc tính RTCDataChannel chỉ đọc
bufferedAmount trả về số byte dữ liệu
hiện đang xếp hàng để được gửi qua kênh dữ liệu. Hàng đợi có thể được xây dựng thành một
kết quả của các cuộc gọi đến phương thức send(). Chỉ điều này
bao gồm dữ liệu được đệm bởi chính tác nhân người dùng; nó không bao gồm bất kỳ chi phí đóng khung nào
hoặc việc đệm được thực hiện bởi hệ điều hành hoặc phần cứng mạng.
Tác nhân người dùng có thể thực hiện quá trình gửi dữ liệu thực tế theo bất kỳ cách nào nó lựa chọn; việc này có thể được thực hiện định kỳ trong vòng lặp sự kiện hoặc thực sự không đồng bộ. Như tin nhắn thực sự được gửi đi, giá trị này sẽ giảm đi tương ứng.
[!LƯU Ý] Đóng kênh dữ liệu không đặt lại số lượng này, mặc dù tác nhân người dùng đã xóa các tin nhắn được xếp hàng đợi. Tuy nhiên, ngay cả sau khi đóng kênh, vẫn cố gắng gửi các tin nhắn tiếp tục được thêm vào giá trị
bufferedAmount, mặc dù tin nhắn không được gửi cũng như không được lưu vào bộ nhớ đệm.
Bất cứ khi nào giá trị này giảm xuống bằng hoặc thấp hơn giá trị được chỉ định trong
bufferedAmountLowThreshold
thuộc tính, tác nhân người dùng sẽ kích hoạt sự kiện bufferedamountlow. Sự kiện này có thể
được sử dụng, ví dụ, để triển khai mã xếp hàng nhiều tin nhắn hơn để gửi bất cứ khi nào
có chỗ để đệm chúng.
Giá trị
Số byte dữ liệu hiện đang được xếp hàng để gửi qua kênh dữ liệu nhưng có vẫn chưa được gửi.
Ví dụ
Đoạn mã bên dưới bao gồm một chức năng thay đổi nội dung của một khối có ID
"bufferSize" thành một chuỗi cho biết số byte hiện được lưu vào bộ đệm trên một
RTCDataChannel.
const dc = peerConnection.createDataChannel("File Transfer");
// …
function showBufferedAmount(channel) {
const el = document.getElementById("bufferSize");
el.innerText = `${channel.bufferedAmount} bytes`;
}
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-datachannel-bufferedamount> |