This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
The RTCDataChannel
property bufferedAmountLowThreshold
is used to specify the number of bytes of buffered outgoing data that is considered "low." The default value is 0 (meaning no bufferedamountlow
events are sent). When the number of buffered outgoing bytes, as indicated by the bufferedAmount
property, falls to or below this value, a bufferedamountlow
event is fired. This event may be used, for example, to implement code which queues more messages to be sent whenever there's room to buffer them. Listeners may be added with onbufferedamountlow
or addEventListener()
.
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.
bufferedamountlow
events are not fired after the data channel is closed.
Syntax
var threshold = aDataChannel.bufferedAmountLowThreshold; aDataChannel.bufferedAmountLowThreshold = threshold;
Value
The number of queued outgoing data bytes below which the buffer is considered to be "low."
Example
In this snippet of code, bufferedAmountLowThreshold
is set to 64kB, and a handler for the bufferedamountlow
event is established by setting the RTCDataChannel.onbufferedamountlow
property to a function which should send more data into the buffer by calling send()
.
var dc = peerConnection.createDataChannel("File Transfer");
dc.bufferedAmountLowThreshold = 65535;
dc.onbufferedamountlow = function() {
/* use send() to queue more data to be sent */
};
Specifications
Specification | Status | Comment |
---|---|---|
WebRTC 1.0: Real-time Communication Between Browsers The definition of 'RTCDataChannel.bufferedAmountLowThreshold' in that specification. |
Working Draft | Initial specification. |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 46 | 44 (44) [1] | No support | (Yes) | ? |
Feature | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 46 | 46 | 44.0 (44) [1] | No support | ? | ? |
[1] The interface is called DataChannel
and not RTCDataChannel
in Firefox; however, a binding was added in Firefox 24 so that either name may be used.