-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Section 11.3: RTCDataChannel: Promise send #111
Comments
What do you do when your peer's receive window is closed? Wouldn't it be nice to learn when the packets were committed to the network? (Or is this a promise that is fulfilled when the packets are acknowledged?) |
We had used promise for the sake of delivery verification (as well as better 'write driven' streaming) but the issue is that this deficiency in DataChannel is not our "problem" to fix. Justin pointed out that we should request that the original Data Channel spec writers to fix the problem in WebRTC and then we adopt the fix instead of possibly forking our own solution to the problem which might be different than there solution... |
The problem with using acknowledgements is that it encourages a lock-step approach, which is grossly inefficient. Fulfilling the promise when the bytes have hit the network is probably useful information, because then you don't end up with a backlog of unsent messages. I can appreciate Justin's concern here, and think that we do need to fix the API elsewhere as well. Perhaps this can be categorized with the bugs that ORTC is going to let someone else handle. |
Agree that this probably should be classified as a "WebRTC 1.0 synchronization issue", with Section 11 (Data Channel) synchronizing with whatever ends up in WebRTC 1.0. |
…3c#66 Added Identity support, as described in Issue w3c#78 Reworked getStats method, as described in Issue w3c#85 Removed ICE restart method described in Issue w3c#93 Addressed CNAME and synchronization context issues described in Issue w3c#94 Fixed WebIDL issues noted in Issue w3c#97 Addressed NITs described in Issue w3c#99 DTLS transport issues fixed as described in Issue w3c#100 ICE transport issues fixed as described in Issue w3c#101 ICE transport controller fixes made as described in Issue w3c#102 Sender and Receiver object fixes made as described in Issue w3c#103 Fixed RTCRtpEncodingParameter default issues described in Issue w3c#104 Fixed 'Big Picture' issues descibed in Issue w3c#105 Fixed RTCRtpParameter default issues described in Issue w3c#106 Added a multi-stream capability, as noted in Issue w3c#108 Removed quality scalability capabilities and parameters, as described in Issue w3c#109 Added scalability examples as requested in Issue w3c#110 Addressed WebRTC 1.0 Data Channel compatibility issue described in Issue w3c#111 Removed header extensions from RTCRtpCodecParameters as described in Issue w3c#113 Addressed RTP/RTCP non-mux issues with IdP as described in Issue w3c#114 Added getParameter methods to RTCRtpSender and RTCRtpReceiver objects, as described in Issue w3c#116 Added layering diagrams as requested in Issue w3c#117 Added a typedef for payload type, as described in Issue w3c#118 Moved onerror from the RTCIceTransport object to the RTCIceListener object as described in Issue w3c#121 Added explanation of Voice Activity Detection (VAD), responding to Issue w3c#129 Clarified the meaning of maxTemporalLayers and maxSpatialLayers, as noted in Issue w3c#130 Added RFC 6051 to the list of header extensions and removed RFC 5450, as noted in Issue w3c#131 Addressed ICE terminology issues, as described in Issue w3c#132 Separated references into Normative and Informative, as noted in Issue w3c#133
Section 11.3 of the current editor's draft has:
partial interface RTCDataChannel : EventTarget {
Promise send (DOMString data);
Promise send (Blob data);
Promise send (ArrayBuffer data);
Promise send (ArrayBufferView data);
}
There is a known bug where send can block for substantial time. However, if this bug is fixed, It is not clear that a Promise is needed. Can we remove this?
The text was updated successfully, but these errors were encountered: