I am working on a project at Hack Reactor that is giving me an introduction to the WebRTC framework. For those not yet in the know, WebRTC is a tool released by Google a few years ago that allows users to communicate in real-time via the browser (RTC = Real-Time Communication). One of the simplest tasks that can be accomplished with this technology is a browser-based chat application, but the advantages truly shine through with use cases involving audio and video communication.
WebRTC has built-in functionality to access a user’s camera and microphone through the browser. It also provides peer-to-peer connection functionality and audio+video calling. By going through the provided examples, my team was able to easily implement a basic video chat application for two individuals to communicate through the browser. No plugins were necessary, and all the user had to do was to “allow” their camera to be used when prompted by the browser.
In order to connect using WebRTC, two peers need to know one another’s information about their network connections, or ICE (Interactive Connectivity Establishment) candidates. This is how the peers know how to communicate, which will take place over a STUN (Session Traversal Utilities for NAT) or TURN (Traversal Using Relays around NAT) server. More information about this process can be found here.