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 ausgehenden Datentransferpuffer unter den im bufferedAmountLowThreshold
angegebenen Schwellenwert fällt. bufferedamountlow
Ereignisse werden nicht gesendet, wenn bufferedAmountLowThreshold
0 ist.
Dieses Ereignis ist nicht abbrechbar und wird nicht weitergeleitet.
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, wenn der Puffer des Datenkanals unter die im bufferedAmountLowThreshold
angegebene Byteanzahl fällt, die wir auf 65536 gesetzt haben. Mit anderen Worten, wir versuchen, mindestens 64 kB Daten im Puffer zu halten, indem wir jeweils 64 kB aus der Quelle lesen.
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 des RTCPeerConnection
ruft dies RTCPeerConnection.createDataChannel()
auf, um den Datenkanal zu erstellen. Anschließend wird ein Listener für bufferedamountlow
erstellt, um den eingehenden Datenpuffer aufzufüllen, sobald dessen Inhalt unter 65536 Bytes fällt.
Sie können auch einen Listener für bufferedamountlow
über dessen Ereignis-Handler-Eigenschaft onbufferedamountlow
einrichten:
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 |