the year of the peer-to-peer web
TRANSCRIPT
The year of the peer-to-peer web@serrynaimo
is a web dev for 17 years lives in Singapore loves great UX organizes JSConf.Asia and CSSConf.Asia mentors at SEA’s first startup accelerator JFDI helps developers use WebRTC
Thomas
@serrynaimo
A set of JavaScript APIs in the browser to enable
peer-to-peer, real-time media and data exchange
WebRTC
@serrynaimo
WebRTC
getUserMedia RTCPeerConnection RTCDataChannel
consists of
@serrynaimo
Internet Communication
@serrynaimo
Usual web communication
@serrynaimo
Peer-to-peer mesh
@serrynaimo
WebRTC and Signaling
Known party
A B
ICE
@serrynaimo
everything requiring the lowest latency/fastest possible between individual peers, like - Audio/Video Calling - Conferencing - Live presentations - Direct file transfer - Synced music streaming
Resilient, decentralized mesh networking for - Sensor data exchange - File/Content distribution
It’s great for
@serrynaimo
everything requiring reliable data transport, like - Traditional music or video streaming
asyncronous communication - Persistant chat - Gaming (single event bus)
Don’t use it for
@serrynaimo
Audio/Video Calling
@serrynaimo
by typing their number into your phone installing Skype and exchanging names get Gmail address, add contact, use hangouts
Usual “web” calling
Talk to anybody
@serrynaimo
Real-time communication as a feature in any app or
website
WebRTC
@serrynaimo
enables embedded, contextual communication
WebRTC
@serrynaimo
host on Travelmob/Airbnb Uber/Lyft driver Doctor on Medifi/Teladoc Restaurant on Hungrygowhere/Yelp Property agent on 99.co/RealtorCustomer support through Zendesk/Freshdesk Your friends in WhatsApp/Line/Snapchat Seller on Carousel/eBay …
WebRTC
Call your
@serrynaimo
Peer Introduction
Known party
A B
ICE
A simple message broker to facilitate the connection establishment between peers.
Signaling Service
@serrynaimo
Media Relaying
A B
representing you as a peer if a direct connection to your device can not be established (e.g. due to firewall constraints)
TURN
Firewall
TURN for B
@serrynaimo
Media Relaying
@serrynaimo
Media Relaying
relaying media streams to reduce amount of connections and CPU use on your device in multi-party sessions
MCU/SFU
SFU
@serrynaimo
@serrynaimo
Media Streaming/Content Delivery
@serrynaimo
CDN Delivery
CDN Edge Location
@serrynaimo
@serrynaimo
What about …
npm install wrtc@serrynaimo
Using WebRTC today
@serrynaimo
Subtle differences in
Using WebRTC today
@serrynaimo
Not supported in IE/Safari
Using WebRTC today
@serrynaimo
Using WebRTC today
Edge shipping WebRTC supportEdge shipping ORTC support
WebRTC and ORTC will converge
@serrynaimo
https://github.com/Temasys/AdapterJS
“Polyfill/Shims/Helpers for WebRTC/ORTC”
@serrynaimo
WebRTC on Android with
Using WebRTC today
@serrynaimo
Safari on iOS?
Using WebRTC today
http://webrtcinwebkit.orgPlenty of Objective C / Swift SDKs for native apps
@serrynaimo
SCREENSHARING
One more thing…
using http://github.com/Temasys/AdapterJS
@serrynaimo
You CAN use WebRTC today!
Really!
@serrynaimo