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.

js
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.

js
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:

js
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

Siehe auch