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.
Note: 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.