WebRTC: APIs and RTCWEB Protocols of the HTML5 Real-Time Web, Third Edition
WebRTC, Web Real-Time Communications, is revolutionizing the way web users communicate, both in the consumer and enterprise worlds. WebRTC adds standard APIs (Application Programming Interfaces) and built-in real-time audio and video capabilities and codecs to browsers without a plug-in. With just a few lines of JavaScript, web developers can add high quality peer-to-peer voice, video, and data channel communications to their collaboration, conferencing, telephony, or even gaming site or application.
New for the Third Edition
The third edition has an enhanced demo application which now shows the use of the data channel for real-time text sent directly between browsers. Also, a full description of the browser media negotiation process including actual SDP session descriptions from Firefox and Chrome. Hints on how to use Wireshark to monitor WebRTC protocols, and example captures are also included. TURN server support for NAT and firewall traversal is also new.
This edition also features a step-by-step introduction to WebRTC, with concepts such as local media, signaling, and the Peer Connection introduced through separate runnable demos.
Written by experts involved in the standardization effort, this book contains the most up to date discussion of WebRTC standards in W3C and IETF. Packed with figures, example code, and summary tables, this book is the ultimate WebRTC reference.
Table of Contents
1 Introduction to Web Real-Time Communications
1.1 WebRTC Introduction
1.2 Multiple Media Streams in WebRTC
1.3 Multi-Party Sessions in WebRTC
1.4 WebRTC Standards
1.5 What is New in WebRTC
1.6 Important Terminology Notes
1.7 References
2 How to Use WebRTC
2.1 Setting Up a WebRTC Session
2.2 WebRTC Networking and Interworking Examples
2.3 WebRTC Pseudo-Code Example
2.4 References
3 Local Media
3.1 Media in WebRTC
3.2 Capturing Local Media
3.3 Media Selection and Control
3.4 Media Streams Example
3.5 Local Media Runnable Code Example
4 Signaling
4.1 The Role of Signaling
4.2 Signaling Transport
4.3 Signaling Protocols
4.4 Summary of Signaling Choices
4.5 Signaling Channel Runnable Code Example
4.6 References
5 Peer-to-Peer Media
5.1 WebRTC Media Flows
5.2 WebRTC and Network Address Translation (NAT)
5.3 STUN Servers
5.4 TURN Servers
5.5 Candidates
6 Peer Connection and Offer/Answer Negotiation
6.1 Peer Connections
6.2 Offer/Answer Negotiation
6.3 JavaScript Offer/Answer Control
6.4 Runnable Code Example: Peer Connection and Offer/Answer Negotiation
7 Data Channel
7.1 Introduction to the Data Channel
7.2 Using Data Channels
7.3 Data Channel Runnable Code Example
7.3.1 Client WebRTC Application
8 W3C Documents
8.1 WebRTC API Reference
8.2 WEBRTC Recommendations
8.3 WEBRTC Drafts
8.4 Related Work
8.5 References
9 NAT and Firewall Traversal
9.1 Introduction to Hole Punching
9.3 WebRTC and Firewalls
9.3.1 WebRTC Firewall Traversal
9.4 References
10 Protocols
10.1 Protocols
10.2 WebRTC Protocol Overview
10.3 References
11 IETF Documents
11.1 Request For Comments
11.2 Internet-Drafts
11.3 RTCWEB Working Group Internet-Drafts
11.4 Individual Internet-Drafts
11.5 RTCWEB Documents in Other Working Groups
11.6 References
12 IETF Related RFC Documents
12.1 Real-time Transport Protocol
12.2 Session Description Protocol
12.3 NAT Traversal RFCs
12.4 Codecs
12.5 Signaling
12.6 References
13 Security and Privacy
13.1 Browser Security Model
13.2 New WebRTC Browser Attacks
13.3 Communication Security
13.4 Identity in WebRTC
13.5 Enterprise Issues
14 Implementations and Uses
INDEX
ABOUT THE AUTHORS