One of the most widely known protocols for real-time communication applications is Web Real-Time Communication (WebRTC), an open-source protocol that enables real-time voice, text and video streaming between web browsers and devices. The protocol is designed to supply a seamless and secure communication experience, which is why it has gained widespread popularity in recent years and why many well-known apps we use every single day are built using the protocol.
There are, however, alternatives for WebRTC as a protocol. All obviously have their own pros and cons and are suitable for several types of applications depending on your requirements and constraints.
That said, let’s cover some of the other protocols (read more below):
This list is not extensive, there are more protocols and standards one can use to build real-time communication applications. Regardless of what protocol you use for your application, the basics we cover in this article are relevant for all protocols, as fundamentally, all protocols benefit from a quality network and bare metal servers for hosting your application. Learn more about the basics of WebRTC and how it works.
For more than two people communicating through WebRTC-based applications. You’ll need compute resources such as bare metal to handle the tasks needed by the protocol. Therefore, you’ll need compute and connectivity services — both come with their caveats, making it crucial for you to understand the role of both and what to look out for when shopping around for your infrastructure needs.
Given that the WebRTC protocol forces all users using the application to establish peer-to-peer (P2P) browser connections, it may increase the total bandwidth usage of your application. This may drive up the costs of the infrastructure needed for hosting your application — something to be mindful of.
Aside from the cost of bandwidth usage, you’re looking for a reliable connection with minimal jitter. We’ve all been in plenty of video and voice calls over the past years to understand how a connection dropping can affect your presentation, or how annoying it can be when users drop mid-sentence. Reliability is the most important thing with WebRTC applications, making connectivity a crucial aspect for the infrastructure you select for your application.
It’s quite simple, you need compute resources to host WebRTC servers. However, depending on your setup, the importance of compute may vary. If you’ve built a simple voice application, you can get away with simple resources. However, there’s plenty of applications out there that require powerful servers with GPU cards to process video and its distribution. Both may affect costs as well as performance, which one way or another ends up affecting the experience of the user of your application.
Considering both compute and connectivity limitations and implications for your applications, it is therefore crucial to achieve a cost-effective solution while keeping a prominent level of quality for your application.
A WebRTC media server is a form of multimedia ‘middleware’ that acts as a mediator between communicating peers. It eases the transfer of media traffic from the source to its destination. These servers supply various functions such as stream processing, group communication, media mixing, transcoding, and recording, among others. For instance, they can act as a Multi-Conference Unit (MCU) by distributing media streams from peers to multiple receivers. They can also mix multiple incoming streams into a single composite stream, transcoding between incompatible codecs and formats, and store media exchanges permanently.
Media servers are therefore optional — if your application only handles communication between two people, you don’t need a media server. But as soon as you’re handling conference calls, group calls, streaming, recording, and broadcasting, a media server is essential.
Due to the WebRTC media server serving most of the traffic and doing (in some cases) the heavy lifting when it comes to processing, media servers are the core of where you can make your WebRTC application more efficient when it comes to costs and quality.
We explain more about the different server types in our blog WebRTC Servers Explained: Ultimate Guide.
The compute resources needed for WebRTC facilitate real-time communication between browsers and other connected devices, handling the signaling, media transmission and data transfers between, to and from users. What you’re looking for in an infrastructure provider is to supply a secure, reliable, and scalable solution.
When selecting infrastructure providers for the distinct types of WebRTC servers it is crucial to consider the actual purpose of the server. For example, WebRTC media servers have a different use case, different requirements and use more bandwidth than, for example, application servers so decide your infrastructure strategy accordingly. If you’re not using a Software as a service (SaaS) or Communications Platform as a Service (CPaaS) provider and need to go shopping for infrastructure providers yourself, here are a few pointers on what to look out for:
Jitter, latency, and packet loss may kill the experience for your users to communicate with each other properly. The network, how it is designed, managed, and monitored is a crucial part of its service.
Some stuff you want to double check:
This should be an obvious decision, but always run a live Proof of concept (PoC) to thoroughly test the network. Yes, a tool such as the i3D.net Looking Glass provides you with relevant information, but you will need to test it over a period before signing a contract.
Look for a provider with global presence, however, don’t steer blindly by only counting its physical locations. The internet is routed through physical cables, and sure, there are plenty of software tweaks to improve quality but at the end of the day, we’re talking about two factors:
Figure out which ISPs (Internet Service Providers) your customers use in their markets and check whether the infrastructure provider of your choice can reach those providers without scenic routing.
WebRTC servers, especially media servers, have high bandwidth demands, while some other applications require high processing power. Both can become costly, especially with egress charges if your egress is petabytes. It will pay off to investigate all the costs, including egress costs, and model them over your expected usage to figure out what the costs will be eventually. You don’t want to be paying more when your application scales up and realize that migrating to another provider will be a prompt expense in which you want your engineers to build new features—not migrating for the sake of cost-savings.
There are several reasons why an Anti-DDoS application should be on your radar. Here are three reasons why you should be protecting your media servers properly.