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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
bufferedamountlow event

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Siehe auch