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 Januar 2020.
Ein bufferedamountlow-Ereignis wird an ein RTCDataChannel gesendet, wenn die Anzahl der Bytes, die sich derzeit im ausgehenden Datenübertragungs-Puffer befinden (bufferedAmount), von über auf unter oder gleich dem in bufferedAmountLowThreshold angegebenen Schwellenwert fällt.
Dieses Ereignis kann nicht abgebrochen werden und bubblet nicht.
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
In diesem Beispiel wird ein Handler für bufferedamountlow eingerichtet, um mehr Daten anzufordern, sobald der Puffer des Datenkanals unter die Anzahl der Bytes fällt, die durch bufferedAmountLowThreshold angegeben sind, welche 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");
// 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));
}
});
Nach der Erstellung der RTCPeerConnection wird RTCPeerConnection.createDataChannel() aufgerufen, um den Datenkanal zu erstellen. Dann wird ein Listener für bufferedamountlow erstellt, um den eingehenden Datenpuffer jedes Mal nachzufüllen, wenn sein Inhalt unter 65536 Bytes fällt.
Sie können auch einen Listener für bufferedamountlow über seine 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> |
Browser-Kompatibilität
Loading…