If you can't read please download the document
Upload
dan-jenkins
View
4.385
Download
3
Embed Size (px)
Citation preview
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 Apenimblea.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!
Its freaking awesome! (dude)
Developers went and tried it
And usually failed
We didnt tell Developers about the complicated stuff
Heard of STUN or TURN?
We failed you.
But
thats 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)
Whos missing?
Safari Desktop & Mobile
But Theres 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
Dont 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 dont know what they do.
Do you?
STUN
Siri, Whats my IP Address?Heres your address: James R. Herman Cruise Terminal at Pier 27 Pier 27 The Embarcadero San Francisco CA 94111
Siri wouldnt make a good STUN Server
TURN (Media Relay)
More choice
Docker images
Dont 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!
Dont 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 drafthttps://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...
Its time to give WebRTC another go
Is WebRTC Production Ready?
Heck YES!
Go use it!
Thanks!@dan_jenkins
nimblea.pe
https://www.flickr.com/photos/clement127/http://images.techhive.com/images/article/2012/11/legohawking-100014318-orig.jpg