RTCDataChannel: bufferedamountlow-Ereignis

Ein bufferedamountlow-Ereignis wird an ein RTCDataChannel gesendet, wenn die Anzahl der Bytes im aktuellen ausgehenden Datenübertragungs-Puffer unter die in bufferedAmountLowThreshold angegebene Schwelle fällt. bufferedamountlow-Ereignisse werden nicht gesendet, wenn bufferedAmountLowThreshold 0 ist.

Dieses Ereignis ist nicht abbrechbar und wird nicht gebubbelt.

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, jedes Mal wenn der Puffer des Datenkanals unter die in bufferedAmountLowThreshold angegebene Bytezahl fällt, die 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.

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 der RTCPeerConnection ruft dies RTCPeerConnection.createDataChannel() auf, um den Datenkanal zu erstellen. Dann wird ein Listener für bufferedamountlow erstellt, um den eingehenden Datenpuffer jedes Mal aufzufüllen, wenn dessen Inhalte unter 65536 Bytes fallen.

Sie können auch einen Listener für bufferedamountlow einrichten, indem Sie seine Ereignis-Handler-Eigenschaft onbufferedamountlow verwenden:

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

BCD tables only load in the browser

Siehe auch