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

Re: Suggestion: Less verbose syntax for offer/answer handling

From: Adam Bergkvist <adam.bergkvist@ericsson.com>
Date: Thu, 7 Jun 2012 10:16:02 +0200
Message-ID: <4FD06342.5060709@ericsson.com>
To: Justin Uberti <juberti@google.com>
CC: Eric Rescorla <ekr@rtfm.com>, "public-webrtc@w3.org" <public-webrtc@w3.org>
Hi

Yes, updateRemoteDescription() needs to be able to handle both. We've 
talked earlier about letting the functions that feed data down to 
PeerConnection take a DOMString and let the objects automatically 
stringify. Then you don't have to wrap the received string in an object 
unless you're actually need it.

/Adam

On 2012-06-05 17:46, Justin Uberti wrote:
> If we do this, updateRemoteDescription needs to be able to take either
> an IceCandidate or a SessionDescription. These types are not
> interchangeable; the IceCandidate needs to have an additional field to
> indicate which m-line it's associated with.
>
> On Tue, Jun 5, 2012 at 11:08 AM, Eric Rescorla <ekr@rtfm.com
> <mailto:ekr@rtfm.com>> wrote:
>
>     I'm pretty indifferent to these options, but is there any other
>     advantage to this
>     other than JS compactness?
>
>     -Ekr
>
>
>     On Tue, Jun 5, 2012 at 6:58 AM, Adam Bergkvist
>     <adam.bergkvist@ericsson.com <mailto:adam.bergkvist@ericsson.com>>
>     wrote:
>      > Hi
>      >
>      > This suggestion uses the SdpType attribute of SessionDescription
>     (discussed
>      > in:
>      >
>     http://lists.w3.org/Archives/Public/public-webrtc/2012May/0047.html) to
>      > include type information in the SessionDescription object. By
>     doing so, we
>      > can have a less verbose syntax where the JavaScript developer can
>     work with
>      > self-contained objects that are generated and understood by
>     PeerConnection.
>      >
>      > This doesn't reduce flexibility since the application can reset
>     the type of,
>      > e.g., an "answer" to an "pranswer" to make PeerConnection
>     interpret it as
>      > such.
>      >
>      > Example of creating an offer:
>      >
>      > --- Current syntax:
>      >
>      > pc.createOffer(function (offer) {
>      >    pc.setLocalDescription("offer", offer);
>      >    sendMessage(JSON.stringify({ "type": "offer", "sdp": offer }));
>      > });
>      >
>      > --- Less verbose syntax:
>      >
>      > pc.createOffer(function (offer) {
>      >    pc.updateLocalDescription(offer);
>      >    sendMessage(offer);
>      > });
>      >
>      > Example of handling an incoming signaling message:
>      >
>      > --- Current syntax:
>      >
>      > signalingChannel.onmessage = function (evt) {
>      >    var msg = JSON.parse(evt.data);
>      >    switch (msg.type) {
>      >    case "offer":
>      >        createPeerConnection();
>      >        pc.setRemoteDescription(msg.type,
>      >                                new SessionDescription(msg.sdp));
>      >        break;
>      >    case "answer":
>      >    case "pranswer":
>      >        pc.setRemoteDescription(msg.type,
>      >                                new SessionDescription(msg.sdp));
>      >        break;
>      >    case "candidate":
>      >        pc.addIceCandidate(new IceCandidate(msg.sdp));
>      >        break;
>      >    }
>      > };
>      >
>      > --- Less verbose syntax:
>      >
>      > signalingChannel.onmessage = function (evt) {
>      >    if (!pc)
>      >        createPeerConnection();
>      >
>      >    pc.updateRemoteDescription(evt.data);
>      > };
>      >
>      > /Adam
>      >
>
>
Received on Thursday, 7 June 2012 08:16:29 UTC

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