Data Channel Buffer Management Proposal

Right now, the data channel specification allows the sender to check the
amount of pending outbound data using the ".bufferedAmount" property.  In
fact, senders are effectively required to check this value when sending
large amounts, to avoid queueing up too much data in memory.  However, if
the sender does need to wait for bufferedAmount to decrease, it must use
timer-based polling to determine when bufferedAmount has decreased, and it
is safe to send again.

To remove the need for polling, I propose the following addition to the
RTCDataChannel API:

Promise<void> waitForBufferedAmountBelow (unsigned long amount);

This method returns a Promise that resolves when this.bufferedAmount <=
amount, or rejects if the channel reaches the "closed" state.

--Ben

P.S.  This issue has also been discussed at
https://code.google.com/p/webrtc/issues/detail?id=4613

Received on Monday, 18 May 2015 18:43:51 UTC