Skip to content
paingha edited this page Mar 31, 2020 · 3 revisions

WebRTC FAQ

Are you you new to WebRTC? Want to learn more? Here are some common questions people ask us, and links to resources that people find helpful.

What is Webrtc:

According to WebRTC.org, WebRTC is an open source framework that enables Real Time peer to peer Audio, Video and media exchange capabilities on the Web. WebRTC is so powerful and is being used in numerous real-time applications from simple web applications that involve audio and video, to more complex video chat or streaming applications. Most of WebRTC’s API has been implemented in Javascript for easy use. Pion is an amazing Golang project that has implemented the WebRTC API purely in Go.

WebRTC implements three APIs, these are: MediaStream (aka getUserMedia), RTCPeerConnection, and RTCDataChannel.

What is Signaling:

As stated previously, WebRTC is peer to peer meaning one device connects to the other. In order for these devices on different networks to locate each other they must connect to a server called the signaling server. The signaling server facilitates the location of each device and the exchange of negotiation messages that would aid in creating a connection.

Signaling is basically used to exchange three types of information: Session control messages: start or stop communication and report errors, Network configuration messages: what's my device's IP address and port? And, Media capabilities: what codecs and resolutions can be handled by my browser and the browser it wants to communicate with?

More About Signaling: https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling

WebRTC does not provide or specify a signaling protocol, Websockets, SIP and XMPP can be used to transfer signaling messages from peers to the signaling server.

A simple example of the Pion WebRTC API can be found here: https://github.com/pion/webrtc/tree/master/examples/data-channels