Re: DataConnection objects

On Jun 12, 2012, at 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.
> 
> maxStreams lets you renegotiate the maximum number of simultaneous open streams.
Just to be clear:
Do you mean the maximum number (a limit you can not overcome with adding streams) of streams
or the number of stream you initially negotiate and you can increase the number later
by adding more 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:50:04 UTC