About This Title

Pages: 220
Published: November 2021
ISBN: 9781680509038
Edition: 1
In Beta

Skill Level Meter

Programming WebRTC

Build Real-Time Streaming Applications for the Web

by Karl Stolley

Build your own video chat application—but that’s just the beginning. With WebRTC, you’ll create real-time applications to stream any kind of user media and data directly from one browser to another, all built on familiar HTML, CSS, and JavaScript. Power real-time activities like text-based chats, secure peer-to-peer file transfers, collaborative brainstorming sessions—even multiplayer gaming. And you’re not limited to two connected users: an entire chapter of the book is devoted to engineering multipeer WebRTC apps that let groups of people communicate in real time. You’ll create your own video conferencing app. It’s all here.

eBook Formats:

  • PDF for desktop/tablets

  • epub for Apple Books, e-readers

  • mobi for Kindle readers

Get all eBook formats here for $24.95 (USD)

Add to Cart we accept visa, mastercard, amex, discover, paypal

This book is in Beta, final version expected Nov 2021

Beta Books: What do I get?


WebRTC is an API exposed in all modern web browsers. After almost a decade of development, the WebRTC specification was finalized, and this book provides faithful coverage of that finalized specification. You’ll start by building a basic but complete WebRTC application for video chatting. Chapter by chapter, you’ll refine that app and its core logic to spin up new and exciting WebRTC-powered apps that will have your users sharing all manner of data with one another, all in real time. No third-party libraries or heavy downloads are required for you or your users: you’ll be writing and strengthening your knowledge of vanilla JavaScript and native browser APIs.

You’ll learn how to directly connect multiple browsers over the open internet using a signaling channel. You will gain familiarity with a whole set of Web APIs whose features bring WebRTC to life: requesting access to users’ cameras and microphones; accessing and manipulating arbitrary user files, right in the browser; and web storage for persisting shared data over the life of a WebRTC call. Like any Web API, WebRTC doesn’t enjoy a perfect implementation in any browser. But this book will guide you in writing elegant code to the specification, with backward-compatible fallback code for use in almost all modern browsers.

Use WebRTC to build the next generation of web applications that stream media and data in real time, directly from one user to another—all by working in the browser.

What You Need

Readers need a text editor, an up-to-date copy of Chrome or Firefox, and a POSIX-style command-line
shell. They’ll also need to install a little bit of open-source software, especially Node.js. All
necessary setup is covered in full in the book’s introductory chapter.

Resources

Releases:

  • B2.0 2021/10/19
  • B1.0 2021/09/04

Contents & Extracts

Note: Contents and extracts of beta books will change as the book is developed.

  • Preface
    • Your WebRTC Journey
    • Who Should Read This Book?
    • What’s Covered (And What’s Not)
    • How This Book Is Organized
    • Online Resources
  • Preparing a WebRTC Development Environment
    • Installing Node.js
    • Serving HTTPS in Development
    • Downloading the Supporting Code and Installing Dependencies
    • Choosing a WebRTC-Ready Development Browser
    • Starting and Stopping the Server
  • Working with a Signaling Channel
    • Preparing a Basic Peer-to-Peer Interface
    • Adding Video Elements: Self and Peer
    • Styling the Core App Elements
    • Adding Functionality to the Call Button in JavaScript
    • Positioning WebRTC as a Front-End Technology
    • Using a Lightweight Signaling Channel
    • Connecting to the Signaling Channel
  • Establishing a Peer-to-Peer Connection
    • Requesting User-Media Permissions
    • Setting Up the Peer Connection
    • Building Connection Logic to the “Perfect Negotiation” Pattern
    • Receiving Media Tracks
    • Testing Out Your First Peer-to-Peer App
  • Handling Data Channels
    • Adding Basic Visual Effects to User Videos
    • Determining Peer-Connection States
    • Applying Filters Remotely with Data Channels
    • Uniquely Identifying Data Channels
    • Adding a Text-Chat Feature
  • Streaming Complex Data
    • Revisiting Perfect-Negotiation Logic in Imperfect Browsers
    • Enhancing the Chat with JSON
    • Sending Images Over the Chat
    • Exchanging Feature-Detection Information
    • Sending and Receiving Binary Data
  • Managing Multipeer Connections
    • Learning from a Failed Peer-to-Peer Call
    • Working with a Multipeer-ready Signaling Channel
    • Revising the Signaling Logic on the Client
    • Dynamically Generating Video Elements
    • Dynamically Preparing Self States and Peer Connections
    • Restructuring WebRTC Callbacks with Closures
    • Working with IDs in the handleScSignal() Callback
    • Retrying and Leaving Multipeer Calls
    • Testing Everything Out
  • Building Peer-to-Peer Interfaces
  • Optimizing Streaming Media
  • Deploying WebRTC Apps to Production
  • Creating a Signaling Channel with WebSockets

Author

Karl Stolley is an associate professor of information technology and management at Illinois Institute of Technology in Chicago. He’s been teaching, researching, and practicing web development up and down the stack since the blink tag was still a thing. He’s a frequent speaker at national and international conferences, and a routine presenter and participant in professional developer groups and meetups in Chicago.

eBook Formats:

  • PDF for desktop/tablets

  • epub for Apple Books, e-readers

  • mobi for Kindle readers

Get all eBook formats here for $24.95 (USD)

Add to Cart we accept visa, mastercard, amex, discover, paypal

This book is in Beta, final version expected Nov 2021

Beta Books: What do I get?

Related Titles:

Skill Level Meter

About This Title

Pages: 220
Published: November 2021
ISBN: 9781680509038
Edition: 1
In Beta