RTCDataChannel: Eigenschaft bufferedAmountLowThreshold
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.
Die RTCDataChannel
-Eigenschaft bufferedAmountLowThreshold
wird verwendet, um die Anzahl der Bytes gepufferter ausgehender Daten zu spezifizieren, die als "niedrig" angesehen wird. Der Standardwert ist 0. Wenn die Anzahl der gepufferten ausgehenden Bytes, wie durch die bufferedAmount
-Eigenschaft angegeben, auf diesen Wert fällt oder darunter liegt, wird ein bufferedamountlow
-Ereignis ausgelöst. Dieses Ereignis kann beispielsweise verwendet werden, um Code zu implementieren, der mehr Nachrichten zur Übertragung in die Warteschlange stellt, wann immer Platz zum Puffern vorhanden ist. Listener können mit onbufferedamountlow
oder addEventListener()
hinzugefügt werden.
Der User-Agent kann den Prozess des tatsächlichen Sendens von Daten auf beliebige Weise implementieren; dies kann periodisch während der Ereignisschleife oder wirklich asynchron geschehen. Wenn Nachrichten tatsächlich gesendet werden, wird dieser Wert entsprechend reduziert.
Note:
bufferedamountlow
-Ereignisse werden nicht ausgelöst, nachdem der Datenkanal geschlossen wurde.
Wert
Die Anzahl der in die Warteschlange gestellten ausgehenden Datenbytes, unterhalb derer der Puffer als "niedrig" angesehen wird.
Beispiel
In diesem Codeausschnitt wird bufferedAmountLowThreshold
auf 64kB gesetzt, und ein Handler für das bufferedamountlow
-Ereignis wird eingerichtet, indem die onbufferedamountlow
-Eigenschaft auf eine Funktion gesetzt wird, die mehr Daten in den Puffer senden soll, indem sie send()
aufruft.
const dc = peerConnection.createDataChannel("File Transfer");
dc.bufferedAmountLowThreshold = 65535;
dc.onbufferedamountlow = () => {
/* use send() to queue more data to be sent */
};
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcdatachannel-bufferedamountlowthreshold |
Browser-Kompatibilität
BCD tables only load in the browser