RTCDataChannel: sự kiện bufferedamountlow
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.
Sự kiện bufferedamountlow được gửi đến RTCDataChannel khi số byte hiện có trong bộ đệm truyền dữ liệu gửi đi (bufferedAmount) giảm từ trên xuống dưới hoặc bằng ngưỡng được chỉ định trong bufferedAmountLowThreshold.
Sự kiện này không thể hủy và không bong bóng.
Cú pháp
Sử dụng tên sự kiện trong các phương thức như addEventListener() hoặc đặt thuộc tính xử lý sự kiện.
addEventListener("bufferedamountlow", (event) => { })
onbufferedamountlow = (event) => { }
Loại sự kiện
Một [[[PH5]] chung chung.
Ví dụ
Ví dụ này thiết lập trình xử lý cho bufferedamountlow để yêu cầu thêm dữ liệu bất cứ khi nào bộ đệm của kênh dữ liệu giảm xuống dưới số byte được chỉ định bởi bufferedAmountLowThreshold mà chúng tôi đã đặt thành 65536. Nói cách khác, chúng tôi sẽ cố gắng giữ ít nhất 64kB dữ liệu trong bộ đệm, đọc 64kB mỗi lần từ nguồn.
let pc = new RTCPeerConnection();
let dc = pc.createDataChannel("SendFile");
// Replace with your own source object, such as a file handle
let source = null;
dc.bufferedAmountLowThreshold = 65536;
pc.addEventListener("bufferedamountlow", (ev) => {
if (source.position <= source.length) {
dc.send(source.readFile(65536));
}
});
Sau khi tạo RTCPeerConnection, thao tác này gọi RTCPeerConnection.createDataChannel() để tạo kênh dữ liệu. Sau đó, một trình nghe được tạo cho bufferedamountlow để nạp lại bộ đệm dữ liệu đến bất kỳ khi nào nội dung của nó giảm xuống dưới 65536 byte.
Bạn cũng có thể thiết lập trình xử lý cho bufferedamountlow bằng thuộc tính trình xử lý sự kiện của nó, onbufferedamountlow:
pc.onbufferedamountlow = (ev) => {
if (source.position <= source.length) {
dc.send(source.readFile(65536));
}
};
Thông số kỹ thuật
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # event-datachannel-bufferedamountlow> |
| WebRTC: Real-Time Communication in Browsers> # dom-rtcdatachannel-onbufferedamountlow> |