Lately technology called WebRTC become popular. It is mostly because it can be used from JavaScript and it's easy to implement.
WebRTC works like this:
- Client/Host opens and maintains a session with website equipped with WebRTC service. If he wants to communicate with another peer then that other peer also needs to have an active session with the same site so webRTC service could create data-bridge between them. Also, it is possible that multiple servers work together. In that case, peers could connect with any site that is part of webRTC network. Then if two peers want to communicate and they are not served by the same server, servers will create server-to-server data channel to carry this peer-to-peer communication. Basically, it could be compared with direct peer-to-peer systems that are set to always use just relay technique, and relaying is one thing direct peer-to-peer systems avoid for all cost because of its most expensive system resource.
BebRTC is easy to implement and it's available and friendly for people that are involved just with web development (the majority of developers). Because of that, webRTC become fairly popular. It enables a simple way of having peer-to-peer capabilities with a web page using just JavaScript ajax.
WebRTC is set of techniques that were present long time ago, packed for use by web developers. WebRTC does not bring much technical advantage. Data passes servers which is insecure regarding privacy concerns. The number of active users is limited by total servers permeability. You need enormous investments in a system powered by technology like this, all data must pass through servers. Also, it's TCP based which automatically limits a thing to 100 socket connections (peers) per network adapter on a server before degradation begins. Usually its good for things like web page chat or small file transfers. But if you try to make something more serious that requires more intense data channel you will find your self-trapped.
So, the conclusion is that webRTC is just simple technology intended for easy use by web developers working on projects intended for some small-scale use.