Review: Real-Time Communication with WebRTC : Peer-To-Peer in the Browser
More than any other technology stack Real-Time Communications demands both advocacy as well as evangelism as the basic starting point for developing communications as applications or in applications. Delivering both audio as well as video simultaneously in real-time either peer-to-peer through browsers, from browser to app or vice versa is a complex task that not even the most technologically advanced companies or even the most highly specialized companies in telecommunications, is capable of overcoming. The introduction of APIs, which is to programmers what drag-and-drop is the technologically layperson, is a simplification without any reinvention of the wheel but nonetheless comes with its own idiosyncrasies. These idiosyncrasies form the basis of work for advocates or evangelists: getting up and running with x API for building a y chat, voice, video or broadcasting application.
Although advocacy or evangelism may take as many forms as there are platforms or languages or companies to come up with either or both or API configurations for any one or more of those two, the backbone of these enterprises is rooted in WebRTC. WebRTC (Web Real-Time Communication), is free, open source software (FOSS) for developing apps with APIs. With its release from the world of proprietary software in 8 years ago, WebRTC initiated the process of instant mutual signals processing (hereinafter IMSP) which has inspired not only innovation but fierce competition among companies for market shares in growth.
The authors, Salvatore Loreto’s and Simon Pietro Romano, create ten levels of challenge for creating a web app that teaches the self-teaching developer how to understand real-time communication, the trapezoid architectural model, VoIP, transfer streaming data between browser peers with RTCPeerConnection API, signalling channels for setting up WebRTC sessions, conferencing, authorization, or other advanced WebRTC features.
Chapter 1 bridges the gap between the architecture of the web with that of WebRTC, explaining a few key features of its API such as MediaStream, PeerConnection, DataChannel, etc…, ending the chapter with a simple example. Chapter 2 expands to a full scale discussion of handling media in the browser. Chapter 3 covers the basics of calling, which I have covered with iOS in a blog featured by The Startup on receiving or sending a call:https://medium.com/swlh/the-absolute-basics-of-ios-callkit-send-receive-a-call-1c2700e13f14 Much of what is covered in Chapter 4 “ The Need for a Signaling Channel” covers the basics of what developer advocates or evangelist spend the majority of their time: speaking, teaching or writing about creating a signaling channel, joining a signal channel, or engaging across a channel. Chapter 5 systematizes the scheme, discussing channels in greater detail.
There are aspects of WebRTC such as PSTN or SMS that the book does not cover. A legacy, the Public Switched Telephone Network expands beyond Wi-Fi calling or calling on an Internet connection to allow for a computer to call a landline or vice versa. These are easily added through independent reading.