<a href="https://github.com/TomasHubelbauer/webrtc-data-channel-demo" rel="nofollow">https://github.com/TomasHubelbauer/webrtc-data-channel-demo</a><p>Hi! I made this GitHub repo to try and show WebRTC data channels and the connection establishment flow in a different way from what I was able to find online.<p>My aim with this repository is to make WebRTC data channels accessible to any web developer by showcasing offerer and answerer separately for total novices (makes it much clearer what's going on on each end of the connection) as well as combined approach where a peer can be both offerer and answerer.<p>I use postMessage instead of a real signalling channel, because I got fed up with people bringing whatever 3rd party signalling solutions to their WebRTC tutorials and I want for this to be as simple to set up and run as possible. That's why it returns off file protocol - no server needed, just open and play!<p>One more goal with this tutorial is to keep it up to date. Once a supported browser (Chrome, Firefox) starts complaining about a deprecated API or the WebRTC spec evolves, I try to rewrite the demo to use the latest and greatest. You can see that in me using async/await instead of promises which also tremendously helps readability.<p>In the future, I will extend this to support mesh connection topology and make it possible to hold group conversations or multiple conversations at the same time.<p>If you've been waiting to see what all the fuss with WebRTC is about, I hope this encourages you to start exploring. Any feedback is welcome!
The signaling server is where a lot of the real complexity comes from [1]. I even had to write my own from scratch for our production implementation.<p>[1] <a href="https://www.sococo.com/blog/webrtc-signaling-here-be-dragons" rel="nofollow">https://www.sococo.com/blog/webrtc-signaling-here-be-dragons</a>
Thanks! I'd be curious also to hear what sort of applications you plan on building with WebRTC. My own interest lies in HTML5 web gaming and peer networks.<p>Another useful resource for starting with WebRTC is Sam Dutton's Simple Info site:<p><a href="https://simpl.info/" rel="nofollow">https://simpl.info/</a>
I have some repos that use WebRTC to connect clients, I created this experiment where I will try to send the needed ice data via audio, to connect peers:
<a href="https://github.com/AquiGorka/webrtc-connect-experiments" rel="nofollow">https://github.com/AquiGorka/webrtc-connect-experiments</a><p>On the games side, I am coding a web version of Kuhhandel (a german boardgame) where people play using their smartphones:
<a href="https://github.com/AquiGorka/kuhhandel" rel="nofollow">https://github.com/AquiGorka/kuhhandel</a><p>Here I used webrtc data channels to send a smartphone's gyroscope data to a webapp that renders a virtual puppet. The puppets control bar mimics the smartphone's orientation:
<a href="https://github.com/AquiGorka/puppets" rel="nofollow">https://github.com/AquiGorka/puppets</a><p>For really simple connections you can use this:
<a href="https://github.com/feross/simple-peer" rel="nofollow">https://github.com/feross/simple-peer</a>