This is a tech demo for WebRTC. The goal is to establish a serverless connection between multiple clients. Any infrastructure required should be minimal and free. Thus, no TURN server.
- One html file per concept.
- Same device, same tab.
- Same device, different tabs.
- Same device, different browsers.
- Different devices, same network.
- Different devices, different networks.
- Establish a stable serverless connection between multiple clients using WebRTC.
Clone the repository and open the index.html
file in your browser or visit my site for this repository.
I want maintenance to be minimal so that the lifetime of the project is as long as possible. This means I don't want to be reliant on a server, subscription, or vendor. If I can achieve this, I can host a project on GitHub Pages and it will be free to run forever.
WebRTC is all about peer-to-peer communication. The ideal is to have no server at all. This is not always possible, but it is the goal.
This is where signaling comes in. Signaling is the process of coordinating peers to form the initial connection. This can be done manually, though automated solutions require a signalling server.
This is where STUN comes in. STUN is a protocol that allows a client to obtain its public IP address. Should you be connecting on the same network, this is not necessary.
This is where TURN comes in. TURN is a protocol that allows a client to relay data through a server. This is a last resort, as it is not ideal for performance.