- 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