WebRTC: Video telephony without a browser plugin

Data Channel

WebRTC can do more than just transfer media streams. The data() function in Listing 14 creates a data channel for transmitting text messages that works like a WebSocket. Line 3 uses the createDataChannel() method to open a channel for the current peer-to-peer connection in the peer object, pc. The ondatachannel event in line 5 occurs when a data channel is opened. The config() function in line 11 defines the callback function that is triggered when a text message arrives, and the send() method in line 14 sends messages over the existing connection.

Listing 14

Data Channel


Chrome Can Do

The sample application for Firefox can be ported for the Google Chrome browser with little effort. To port the application to Chrome, just change the manufacturer prefix moz to webkit in the examples. The expressions you need to change could just as easily be outsourced into functions that call the appropriate function, including a manufacturer prefix for each browser. Note that the examples only work in Chrome when called via the HTTP protocol, such as http://localhost:6655/mediastream.html.

WebRTC can also connect multiple browsers. The topology of peer-to-peer connections is endless, but a computer quickly reaches its limits when asked to play multiple media streams. WebRTC brings native real-time communication to the browser. Two browsers are needed to build a peer-to-peer connection across the Internet. WebRTC also works around NAT or firewalls. With its data channel, WebRTC not only ensures a bidirectional exchange of application data but also transfers media streams.

The direct connection between browsers saves time and data traffic. This opens up opportunities for many new HTML5 applications to web developers  – for example, video chats or distributed applications, such as a networked memory game.

The Author

Andreas Möller (http://pamoller.com) has focused on developing Internet-based software since 2001. His work includes database and web applications, as well as single-source publishing. He is currently a consultant and freelance writer.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • An open source, federated video sharing platform

    With PeerTube you can self-host your videos without the limitations embedded in YouTube and similar platforms.

  • Easy Video Telephony

    A video telephony system with huge user benefits does not have to be complex. This project starts a phone call with just a single button press and switches channels automatically on a TV.

  • PeerTube

    PeerTube, the Fediverse's video platform, offers a decentralized, open source way to watch videos and live stream your own content. We'll show you how to get started and even set up your own instance.

  • Tube Archivist

    Tube Archivist indexes videos or entire channels from YouTube in order to download them with the help of the yt-dlp tool.

  • Post-PRISM Privacy

    Linux users didn't need the recent NSA eavesdropping scandal to convince them that securing communication was a good idea. Free software developers have been creating secure tools for years that offer similar functionalities to all of those popular but very leaky services with ridiculous names.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More