Re: DataConnection objects

Randell, thanks for writing this up! A comment in-line below.

On 06/12/2012 10:25 AM, Randell Jesup wrote:
> 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.

I still am not convinced about the need for this DataConnection object. 
Since there will be only one DataConnection per PeerConnection, there is 
a one-to-one mapping between them. What do the app developer (on anyone 
else) gain by us introducing the DataConnection object?

>
> 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?
>

Received on Wednesday, 13 June 2012 06:19:41 UTC