Learn about our integration with Amazon Connect here !

Using WebRTC for P2P: Should I Use an SDK?

by Lasse Lumiaho,
31 January 2018

Using WebRTC for P2P - Should I Use an SDK?

Once the realm of science fiction, real-time video and audio communication via handheld devices is a fact of life. As technology has progressed, frameworks such as WebRTC, which help app developers add real-time communication to their products, have blossomed, opening the way for new communication apps as well as improved services and engagement in existing apps.

For many developers looking to dip their feet into WebRTC, one of the biggest questions is whether to use a WebRTC software development kit (SDK). This is especially true when the intended purpose is strictly one-to-one, peer-to-peer (P2P) communication.

What to consider when choosing between the native WebRTC library or an SDK

While it is true that simple RTC communication can be handled by WebRTC’s built-in P2P capabilities, there are other factors to consider. One of the biggest is signaling, or the entire process of initiating and maintaining a “call.” This involves initiating the communication session; negotiating a pathway through the network routers and security measures each user is sitting behind; handling password security and encryption; and negotiating any media exchange that may happen.

Interestingly, the WebRTC framework does not specify the methods or protocols that should be used to handle the signaling aspect of an application or service. This was a conscious decision made by the standardization groups at IETF and W3C behind WebRTC in an effort to improve compatibility with existing protocols and avoid unnecessary redundancy. It leaves developers to determine for themselves the best protocols and technologies to use so as to make their application or service compliant with WebRTC standards. A small company looking to make its mark with an innovative new app or service could thus spend a tremendous amount of time and money trying to set up the signaling backend, essentially reinventing the wheel, rather than using an existing SDK to speed up the process and allow them to focus on what will make their offering truly unique.

Another factor in favor of using an SDK, is the improved scalability and reliability they offer for relatively simple P2P services. If the prospect of implementing ICE frameworks in conjunction with TURN and STUN servers, and dealing with NAT firewall issues—all using custom code—doesn’t sound appealing, then an SDK should be a top priority. Since, as with signaling, WebRTC does not specify the technologies, frameworks, or methods that should be used, a developer can expend countless resources trying to engineer a backend architecture that will perform reliably and meet the demands of growth.

Here’s yet another reason to use an existing SDK: It can provide real-time insights into how customers are using your WebRTC app or service. Also, many SDKs have an integration with callstats.io. WebRTC analytics can give you an invaluable perspective on ways to improve your service, increase customer engagement, and provide more value. Creating those analytics from scratch, on the other hand, can be another costly pain point that an SDK can help eliminate.

Ushering in a new era of real-time communication

Without a doubt, WebRTC has helped usher in a new era of real-time communication. By using one of the SDKs currently available, a development team can save a lot of time and money, improve reliability, and ensure the long-term scalability of a WebRTC app or service, even if it’s a relatively simple P2P offering. Still interested to learn more about which SDK to go with? Read our blogpost ‘Choosing the Right WebRTC Provider at the Right Price here.