RTCDataChannel: bufferedamountlow-Ereignis
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.
Ein bufferedamountlow
-Ereignis wird an ein RTCDataChannel
gesendet, wenn die Anzahl der Bytes im aktuellen ausgehenden Datenübertragungs-Puffer unter die in bufferedAmountLowThreshold
angegebene Schwelle fällt. bufferedamountlow
-Ereignisse werden nicht gesendet, wenn bufferedAmountLowThreshold
0 ist.
Dieses Ereignis ist nicht abbrechbar und wird nicht gebubbelt.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
, oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("bufferedamountlow", (event) => {});
onbufferedamountlow = (event) => {};
Ereignistyp
Ein generisches Event
.
Beispiele
Dieses Beispiel richtet einen Handler für bufferedamountlow
ein, um mehr Daten anzufordern, jedes Mal wenn der Puffer des Datenkanals unter die in bufferedAmountLowThreshold
angegebene Bytezahl fällt, die wir auf 65536 gesetzt haben. Mit anderen Worten, wir versuchen, mindestens 64 kB Daten im Puffer zu halten und lesen jeweils 64 kB aus der Quelle.
let pc = new RTCPeerConnection();
let dc = pc.createDataChannel("SendFile");
// source data object
let source = (dc.bufferedAmountLowThreshold = 65536);
pc.addEventListener(
"bufferedamountlow",
(ev) => {
if (source.position <= source.length) {
dc.send(source.readFile(65536));
}
},
false,
);
Nach der Erstellung der RTCPeerConnection
ruft dies RTCPeerConnection.createDataChannel()
auf, um den Datenkanal zu erstellen. Dann wird ein Listener für bufferedamountlow
erstellt, um den eingehenden Datenpuffer jedes Mal aufzufüllen, wenn dessen Inhalte unter 65536 Bytes fallen.
Sie können auch einen Listener für bufferedamountlow
einrichten, indem Sie seine Ereignis-Handler-Eigenschaft onbufferedamountlow
verwenden:
pc.onbufferedamountlow = (ev) => {
if (source.position <= source.length) {
dc.send(source.readFile(65536));
}
};
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # event-datachannel-bufferedamountlow |
WebRTC: Real-Time Communication in Browsers # dom-rtcdatachannel-onbufferedamountlow |
Browser-Kompatibilität
BCD tables only load in the browser