WebRTC Reborn
Dan Jenkins @dan_jenkins
Dan Jenkins
@dan_jenkins
Node.js Developer
Love Lego & Technic
General Geek
Founder of Nimble Ape Ltd
❤ open source
github.com/danjenkins
@dan_jenkins
Nimble Ape
nimblea.pe
dan@nimblea.pe
@nimbleapeltd
Node.js / IoT / VoIP/WebRTC
Consulting
(Anything real-time)
WebRTC
Heard of it?
Built something with it?
Used it?
Built with WebRTC
What is WebRTC?
Web Real
Time
Communication
Secure by design
Peer to Peer Technology
Media Channel
for Audio & Video
Data Channel
for almost any kind of Data
3 Core JavaScript APIs
getUserMedia
RTCPeerConnection
RTCDataChannel
Peer To Peer
Communication
Signalling Server / Protocol
It's not magic...
Signalling Server / Protocol
Signalling Server / Protocol
2 Peers
3 peers
(Mesh)
*n peers
(Mesh)
(Not Recommended for all situations)
No plugins
(Browser extensions are required for screensharing)
Opens the door for Awesome
Open Technology
Browsers, Mobiles and
Other Devices
Web Scale
Little Dependence on
Media Servers
Easier on the wallet
Awesome apps are being
launched
Be My eyes
38
http://www.bemyeyes.org/
Mindme
http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/404891-webrtc-enrolled-suicide-prevention.htm
Cystic Fibrosis Telehealth In
Australia
http://www.webrtcworld.com/topics/webrtc-world/articles/334242-australian-cystic-fibrosis-telehealth-project-relies-webrtc.htm
Cancer Telehealth in Texas
https://developer.ibm.com/bluemix/2015/09/16/bluemix-and-twilio-at-krankygeek-2015/
Developers are building
Apps that help humanity
WebRTC
Reborn
A brief history of time WebRTC…
Its 5 years old!
You always mess
up the first child
We messed up.
At the start,
everyone was
so excited
Countless talks at
conferences
Look ma,
no plugins!
“It’s freaking awesome!”
(dude)
Developers went and tried it
And usually failed
We didn’t tell Developers
about the complicated stuff
Heard of STUN or TURN?
We failed you.
But…
that’s all changed
Oh Really?
Strong community
Google Developer Experts
WebRTC Weekly
https://webrtcweekly.com/
WebRTC Hacks
https://webrtchacks.com/
Excellent Browser Support
Chrome on Desktop
Chrome on Android
Firefox
Opera on Desktop
Opera on Android
Microsoft Edge
(ORTC)
Who’s missing?
Safari
Desktop & Mobile
But…
There’s Hope!
Apple Put An Engineer on the
WebRTC-in-webkit
Project
And contributed to
getUserMedia
And then...
webkit.org/status
Microsoft Edge
Currently supports ORTC
What about WebRTC?
Edge will soon support
WebRTC!
edgewebsummit2016
All those Supported browsers…
Their support and
progress is awesome
Don’t Break things.
Move Fast.
And we have plugins for IE
and Safari
Temasys
+ many others
API & Browser
Status Check
iswebrtcreadyyet.com
Simple Signalling
You need a Signalling Server
Who Knew?!
Open Source signalling
socket.io P2P
http://socket.io/blog/socket-io-p2p/
matrix.org
asterisk
signalmaster
https://github.com/andyet/signalmaster
And many many others
Documentation!
https://github.com/webrtc
https://bitbucket.org/webrtc/codelab
https://github.com/muaz-khan
https://www.webrtc-experiment.com
https://github.com/webrtc/samples
https://webrtc.github.io/samples/
g.co/webrtc
https://codelabs.developers.google.com/codelabs/
webrtc-web
STUN & TURN Servers
You still don’t know
what they do.
Do you?
STUN
Siri, What’s my IP Address?
Here’s your address:
James R. Herman Cruise Terminal at Pier 27
Pier 27
The Embarcadero
San Francisco
CA
94111
Siri wouldn’t make a good STUN Server
TURN
(Media Relay)
More choice
Docker images
Don’t Forget!…
You need to address a
STUN server in your App!
Google give you some!
stun.l.google.com:19302
stun1.l.google.com:19302
stun2.l.google.com:19302
stun3.l.google.com:19302
stun4.l.google.com:19302
There are many others!
Don’t repeat History
Use a STUN Server!
Modules on npm
Many
Open Source
wrappers
adapter.js
https://github.com/webrtc/adapter
PeerJS
https://github.com/peers
easyRTC
https://github.com/priologic/easyrtc
SimpleWebRTC
https://simplewebrtc.com/
Many Many Others
PaaS
Use them!
Twilio
Xura … (Forge) … (Acision)
Kandy
Tokbox
Respoke
Cisco … (Tropo)
Plus many others…
Some quick stats...
2 Billion+
WebRTC Enabled Browsers
https://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/pub
1 Billion+
Transmitted audio/video minutes per week
in Chrome
https://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/pub
And a whole host of
internal improvements
ECDSA
OPUS 1.2
MediaRecorder
H.264
VP9
CocoaPod
Tab Sharing
Canvas Streaming
https://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/pub
https://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/pub
https://goo.gl/UK4sNV
And finally...
a specification soon
(hopefully)
Currently a working draft
https://www.w3.org/TR/webrtc/
Public Service
Announcement
Chrome limits
getUserMedia to
Trusted Origins
Trusted Origins =
Localhost + HTTPS
(But not Self Signed Certs)
But LetsEncrypt
Is Here
letsencrypt.org
Don't get caught out in
wondering why your app
doesn't work...
It’s time to give WebRTC
another go
Is WebRTC
Production Ready?
Heck YES!
Go use it!
Thanks!
@dan_jenkins
nimblea.pe
dan@nimblea.pe
https://www.flickr.com/photos/clement127/
http://images.techhive.com/images/article/2012/11/legohawking-100014318-orig.jpg

WebRTC Reborn SignalConf 2016