1 / 16

ORTC Node.js Prototype Walkthrough

ORTC Node.js Prototype Walkthrough. Vancouver, 11/3/2013 Adalberto Foresti Principal Program Manager. Key Messages, Call to Action. The spec is implementable in the real world > Dev experience is already feeding back into the document

nelson
Télécharger la présentation

ORTC Node.js Prototype Walkthrough

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ORTC Node.js Prototype Walkthrough Vancouver, 11/3/2013 Adalberto Foresti Principal Program Manager

  2. Key Messages, Call to Action The spec is implementable in the real world > Dev experience is already feeding back into the document The resulting JavaScript is simple and understandable by ordinary web developers > And that is, without tons of JS library code to hide the difficult stuff Try the code out! Join the effort in the CG and github! > Node.js code will be contributed under permissive OSS license in the next days

  3. RTCConnectionImplementation RTCConnection.js Exposes RTCConnectioninterface from ORTC spec Manages streams, Implements event handlers for ICE candidates, connection, and streams

  4. RTCConnectionuse gatewayclient-ortc-p2p.js Loads plugin Instantiates RTCConnection Initializes and manages ICE > collects local information and keeps track of candidates from the other peer Collects streams via getUserMediaand sends them to peer Receives streams from peer; plays them on page See “Simple Peer-to-peer Example” (section 9.1)

  5. RTCTrackimplementation RTCTrack.js Exposes RTCTrackinterface from ORTC spec Defines source, kind, msrc(R/O), msid, codecs, attributes, rtpExtHeaders(R/W) Implements start, stop, getDescription, and removemethods

  6. getUserMedia getUserMedia.js Exposes getUserMediainterface from w3c spec > Business logic is implemented within the plugin Get handles to Media devices for audio and video streaming Handles error condition if device access is denied MediaStream.js Exposes MediaStreamand MediaStreamTrackinterfaces

  7. ICE transport.js Wraps plugin logic for creation and management of secure (real time) ports gather.js Keeps looping for new candidates as network conditions might change checker.js Verifies the viability of candidates found by the gatherer by attempting to connect

  8. ICE (2) transportbuilder.js Starts the gatherer to collect ICE candidates and manages the list networkinterfacetransportbuilder.js If multiple network interfaces are available, maintains one candidate per interface and handles failover

  9. What’s next? • Add Support for DMTF • Catch up with Spec updates • General code cleanup • More comments in the source! • Additional documentation • What about the Client? • Support for Windows 8.1 • Chrome/OSX Build • What about an Open Source Client?

  10. Resources • http://www.w3.org/community/orca/ (ORTC home base) • https://rawgithub.com/robin-raymond/ortc/master/ortc.html (spec) • https://github.com/openpeer/ortc (source code) • http://html5labs.com (drop point for the client plugin)

  11. Backup

  12. Bill of Materials

  13. The Node Server Gateway-p2p.js Creates HTTP Handler (httpHandler), then starts listening for messages (ioSocket.on) and handling them (handleMessage) > Each client has its own dedicated web socket Maintains registry of “rooms” (host + guest pairs) and communicates state changes to peers (ready, start call, stop) > If one of the peers’ socket is disconnected, sends stop to the other

  14. HTML pages Index.html Starting point for creation of new sessions Can terminate all sessions by posting a /reset command to the server gatewayclient-ortc.html Host page for Video control where all the action takes place Can act as either host or guest

  15. Gateway Client Scripts signalingchannel.js Contains client side websocket code Creates connection, registers w/server, listens for events gatewayclient-p2p.js Initializes Client configuration Handles UI events

More Related