W3C home > Mailing lists > Public > public-webrtc@w3.org > June 2012

DataConnection objects

From: Randell Jesup <randell-ietf@jesup.org>
Date: Tue, 12 Jun 2012 04:25:37 -0400
Message-ID: <4FD6FD01.5020804@jesup.org>
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

This archive was generated by hypermail 2.3.1 : Monday, 23 October 2017 15:19:28 UTC