- From: Randell Jesup <randell-ietf@jesup.org>
- Date: Tue, 12 Jun 2012 04:25:37 -0400
- To: public-webrtc@w3.org
Building on the discussions today in the WebRTC W3 WG meeting: In PeerConnection, replace DataChannel createDataChannel ( [TreatNullAs=EmptyString] DOMString? label, optional DataChannelInit? dataChannelDict); With DataConnection createDataConnection(short initialStreams); Add: interface DataConnection { DataChannel createDataChannel ( [TreatNullAs=EmptyString] DOMString? label, optional DataChannelInit? dataChannelDict); attribute short maxStreams; const unsigned short CONNECTING = 0; const unsigned short OPEN = 1; const unsigned short CLOSING = 2; const unsigned short CLOSED = 3; readonly attribute unsigned short readyState; [TreatNonCallableAsNull] attribute Function? onopen; [TreatNonCallableAsNull] attribute Function? onerror; [TreatNonCallableAsNull] attribute Function? onclose; void close (); }; readyState may need to be changed to strings Calling createDataConnection() before CreateOffer will cause the offer to include a DataConnection. Calling it after the PeerConnection is connected will cause a renegotiation. There can only be one DataConnection per PeerConnection at any time; attempting to create a second one will fail. maxStreams lets you renegotiate the maximum number of simultaneous open streams. Plus appropriate language about what happens if you close/destroy the DataConnection (close/disconnect all DataChannels, etc) Open question: How does this interact with CreateAnswer? They can call createDataConnection and then CreateAnswer, but they need to know that the offer asked for a DataConnection. (Justin, Cullen)? Open question: createDataChannel before onopen: does it queue? Given we've exposed this object, I'd guess no, and trying to create one when not in the open readyState will fail. Open question: Do we need a global DataConnection priority, or just priorities on the individual DataChannels? -- Randell Jesup randell-ietf@jesup.org
Received on Tuesday, 12 June 2012 08:28:09 UTC