RTCDataChannel: bufferedAmount-Eigenschaft

Die schreibgeschützte RTCDataChannel-Eigenschaft bufferedAmount gibt die Anzahl von Bytes zurück, die derzeit zur Übertragung über den Datenkanal in der Warteschlange stehen. Die Warteschlange kann sich aufgrund von Aufrufen der send()-Methode aufbauen. Dies umfasst nur Daten, die vom User Agent selbst gepuffert werden; es umfasst weder einen Rahmen-Overhead noch ein Puffern durch das Betriebssystem oder die Netzwerkausrüstung.

Der User Agent kann den tatsächlichen Sendevorgang auf beliebige Weise implementieren; dies kann periodisch während der Ereignisschleife oder tatsächlich asynchron geschehen. Während Nachrichten tatsächlich gesendet werden, wird dieser Wert entsprechend reduziert.

Hinweis: Das Schließen des Datenkanals setzt diesen Zähler nicht zurück, obwohl der User Agent die Nachrichten in der Warteschlange löscht. Dennoch werden auch nach dem Schließen des Kanals weitere Versuche, Nachrichten zu senden, zum bufferedAmount-Wert hinzugefügt, obwohl die Nachrichten weder gesendet noch gepuffert werden.

Jedes Mal, wenn dieser Wert auf oder unter den in der bufferedAmountLowThreshold-Eigenschaft angegebenen Wert abfällt, löst der User Agent das bufferedamountlow-Ereignis aus. Dieses Ereignis kann beispielsweise verwendet werden, um Code zu implementieren, der mehr Nachrichten in die Warteschlange stellt, sobald Raum vorhanden ist, um sie zu puffern.

Wert

Die Anzahl von Bytes von Daten, die derzeit zur Übertragung über den Datenkanal in der Warteschlange stehen, aber noch nicht gesendet wurden.

Beispiel

Der unten stehende Ausschnitt enthält eine Funktion, die den Inhalt eines Blocks mit der ID "bufferSize" in einen String ändert, der die Anzahl der derzeit auf einem RTCDataChannel gepufferten Bytes angibt.

js
const dc = peerConnection.createDataChannel("File Transfer");

// …

function showBufferedAmount(channel) {
  const el = document.getElementById("bufferSize");

  el.innerText = `${channel.bufferedAmount} bytes`;
}

Spezifikationen

Specification
WebRTC: Real-Time Communication in Browsers
# dom-datachannel-bufferedamount

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch