Web/API/RTCDataChannel/bufferedAmount

From Get docs

This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.


The read-only RTCDataChannel property bufferedAmount returns the number of bytes of data currently queued to be sent over the data channel. The queue may build up as a result of calls to the send() method. This only includes data buffered by the user agent itself; it doesn't include any framing overhead or buffering done by the operating system or network hardware.

The user agent may implement the process of actually sending data in any way it chooses; this may be done periodically during the event loop or truly asynchronously. As messages are actually sent, this value is reduced accordingly.

Closing the data channel doesn't reset this count, even though the user agent purges the queued messages. However, even after closing the channel, attempts to send messages continue to add to the bufferedAmount value, even though the messages are neither sent nor buffered.


Whenever this value decreases to fall to or below the value specified in the bufferedAmountLowThreshold property, the user agent fires the bufferedamountlow event. This event may be used, for example, to implement code which queues more messages to be sent whenever there's room to buffer them.

Syntax

var amount = aDataChannel.bufferedAmount;

Value

The number of bytes of data currently queued to be sent over the data channel but have not yet been sent.

Example

The snippet below includes a function which changes the contents of a block with the ID "bufferSize" to a string indicating the number of bytes currently buffered on an RTCDataChannel.

var dc = peerConnection.createDataChannel("File Transfer");

/* ... */

function showBufferedAmount(channel) {
  let el = document.getElementbyId("bufferSize");

  el.innerHTML = channel.bufferedAmount + " bytes";
}

Specifications

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

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

bufferedAmount

Experimental'

Chrome

Full support 56

Edge

Full support ≤79

Firefox

Full support 18

IE

No support No

Opera

Full support 43

Safari

Full support Yes

WebView Android

Full support 56

Chrome Android

Full support 56

Firefox Android

Full support 18

Opera Android

Full support 43

Safari iOS

No support No

Samsung Internet Android

Full support 6.0

Legend

Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.


See also