webrtc reborn signalconf 2016
TRANSCRIPT
-
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