text: Why is WebRTC important for your app?
  New waves of data web applications and real time chat features using browser-driven,webRTC technologies have become very popular as users prefer this technology over proprietary Live video chat app software. Apart from the privacy concerns, applications using Web RTC are an advantage for
  - File sharing between P2P
  - Moving large amounts of data via channels such as multiplayer video games
  - Video conferencing and webinars online presentations
  - Screen sharing
  - Controlling smart TV’s remotely transferring data between iot devices in a network
  Hence, building webRTC apps with real-time, free video chat will help you reach out to a wider user base, more easily than proprietary software-backed applications.
  Let us take a look at the components and the common issues that developing WebRTC apps involves in the following sections…
  WebRTC Components: A quick look
  GetUserMedia – for accessing camera and microphone
  This API is used to access media devices such as video cameras, screen capturing devices and microphones. The first step is establishing p2p connection and then requesting access to all media devices. Advanced code captures response of users for enabling cameras and microphones and overall establishes the access to devices, taking care of certain requirements and constraints.
  PeerConnection – for sending and receiving media
  This API is used for connecting users on P2P protocol. It involves the use of binary, audio and video data and the server is configured using Internet Connectivity Establishment. Two types of servers – Session Traversal Utilities for NAT (STUN) and Traversal Using Relay NAT (TURN) are used. Signaling is not part of this API and instead uses REST API or WebSockets.
  DataChannels – for non-media sending between browsers
  The WebRTC standard for sending data to the object is this API. This is used for sending any type of data, like creating a multi-user web-based game or a chat functionality.
  Using these webRTC APIs developers are able to build new products such as one-on-one private conversation without having to even install an app!
  However in using this technology there are certain hardships or initial pitfalls, that are discussed in the following sections…
  Three pitfalls you have to avoid in Web RTC project
  In the following discussion we focus on these likely deep issues that webRTC technology development involves:
  pitfall 1: Misinterpreting webRTC technology
  Use of webRTC is a technically refined instant messaging process that most developers use intuitively. The practical use of webRTC is unlimited, but the translation of these into solutions for retail users brings with it a package of un-exploited difficulties. It is unfamiliar to retail users as it includes advanced voice over internet protocol communications leading to obstacles in web development and video streaming.
  Understanding webRTC is a new technology is key to developing any solution for commercial use. WebRTC implementation at the browser level continues to change at a fast pace. That is, the implementation at the browsers is a dynamic process. Hence webRTC is likely to be outdated or incorrect at several points of development. In considering this backdrop it is essential to understand that web RTC Technology has to be built based on the following factors-
  - Understand which server needs to be used for your web RTC app
  - Know signaling process for establishing p2p connection
  - Media processing and transmission know-how has to be acknowledged
  - Reaching out to experts in web RTC technologies is critical to develop any chat feature
  Pitfall 2: Choosing the right library for your webRTC app
  There are a broad range of ready made solutions to implement and maintain webRTC connections. However it becomes complicated because the repositories of the library for the webRTC are not consistently updated.
  Caution has to be exercised in choosing a webRTC library:
  (1) The project has to be alive
  When choosing the library you will have to check if the update is recent, a minimal of a few months. The code which is older than a year will not be functional and check if the library is updated
  (2) The quality of the documentation
  A critical factor in adapting the library is the quality of documentation that is provided. There is a lot of variation in the documentation of one webRTC library to the next. The essentials that need to be included in a webRTC are an introduction to the library, the architecture reference to an API explanation of the properties and methods showcasing the project and instructions for installing configuration maintenance as well as telling the solution.
  If all of the above factors are included in the documentation then it is a fail-proof library to be implemented. Any one of these features are lacking then it does not help your project to develop.
  (3) Understand how the code for the literary works and to maintain the code yourself
  The code that is used in the development of the library is very important as it includes the comments by other developers explaining the outcome of the particular code. This helps in maintaining the code inhouse for your library and it simplifies the process of maintaining the library code.
  (4) How popular is this library with the developers
  A measure of the popularity of the library is the number of actor users and community. Where the members are able to contribute to what the developers of a provide an indication of the practical use of the library. The popular need for finding answers to the nagging questions of hiring people for the project is important.
  (5) Quality of the back-end implementation?
  Only a few libraries support servers which limits developers working on a project.
  Similarly, configuring the servers is another issue for WebRTC projects.
  Pitfall 3: Type of servers to use – STUN/TURN
  Browser compatibility issues trouble webRTC development. To avoid issues with STUN/TURN the following aspects have to be considered:
  - P2P connections can work without server, but reliable connections are necessary in real-time transmission
  - Avoid use of STUN and TURN servers
  - STUN servers need not be powerful machines nor do they need heavy memory or processing power
  - TURN servers become resource hogs and are sensitive to the location of the user.
  Ideally, using restund or coturn STUN/TURN servers should be used.
  Building successful webRTC app by avoiding these pitfalls