Web/API/RTCDataChannel/bufferedamountlow event

From Get docs


A bufferedamountlow event is sent to an RTCDataChannel when the number of bytes currently in the outbound data transfer buffer falls below the threshold specified in bufferedAmountLowThreshold. bufferedamountlow events aren't sent if bufferedAmountLowThreshold is 0.

Bubbles No
Cancelable No
Interface Event
Event handler property onbufferedamountlow

Examples

This example sets up a handler for bufferedamountlow to request more data any time the data channel's buffer falls below the number of bytes specified by bufferedAmountLowThreshold, which we have set to 65536. In other words, we'll try to keep at least 64kB of data in the buffer, reading 64kB at a time from the source.

let pc = new RTCPeerConnection();
let dc = pc.createDataChannel("SendFile");
let source = /* source data object */

dc.bufferedAmountLowThreshold = 65536;

pc.addEventListener("bufferedamountlow", ev => {
  if (source.position <= source.length) {
    dc.send(source.readFile(65536));
  }
}, false);

After creating the RTCPeerConnection, this calls RTCPeerConnection.createDataChannel() to create the data channel. Then a listener is created for bufferedamountlow to refill the incoming data buffer any time its contents fall below 65536 bytes.

You can also set up a listener for bufferedamountlow using its event handler property, onbufferedamountlow:

pc.onbufferedamountlow = ev => {
  if (source.position <= source.length) {
    dc.send(source.readFile(65536));
  }
}

Specifications

Specification Status Comment
WebRTC 1.0: Real-time Communication Between BrowsersThe definition of 'bufferedamountlow' in that specification. Candidate Recommendation  

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
bufferedamountlow event

Chrome Full support 57

Notes'

Full support 57

Notes'

Notes' The default for rtcpMuxPolicy is require.

Edge Full support ≤79

Notes'

Full support ≤79

Notes'

Notes' The default for rtcpMuxPolicy is require.

Firefox

Full support Yes

IE

No support No

Opera Full support 44

Notes'

Full support 44

Notes'

Notes' The default for rtcpMuxPolicy is require.

Safari

Full support Yes

WebView Android Full support 57

Notes'

Full support 57

Notes'

Notes' The default for rtcpMuxPolicy is require.

Chrome Android Full support 57

Notes'

Full support 57

Notes'

Notes' The default for rtcpMuxPolicy is require.

Firefox Android

Full support Yes

Opera Android Full support 43

Notes'

Full support 43

Notes'

Notes' The default for rtcpMuxPolicy is require.

Safari iOS

No support No

Samsung Internet Android Full support 7.0

Notes'

Full support 7.0

Notes'

Notes' The default for rtcpMuxPolicy is require.

Legend

Full support  
Full support
No support  
No support
See implementation notes.'
See implementation notes.


See also