holtwick / spontan

Server avoiding WebRTC
Other
4 stars 0 forks source link

spontan

German for "spontaneous"

Avoid using servers for WebRTC as much as possible

Even though WebRTC is labelled peer-to-peer (P2P) it is mostly not, because just the data transfer itself goes from one client to the other without servers in the middle. Usually these servers are involved to establish the connection:

  1. A web server hosting the actual web app that wants to connect
  2. A signaling server that exchanges session descriptions (SDP) to establish a direct connection
  3. A STUN server required to get you through your own NAT or firewall
  4. A TURN server that proxies all data in worst case when no direct connection can be established

The idea of this project is to eliminate most of them or at least find some viable alternatives.

The motivation is to reduce the attacking points on communication in endangered societies or circumstances.

Approaches

Webserver

Signaling

STUN

This cannot be avoided, alternative strategies could be:

TURN

If you need it you'll need it. This cannot be replaced by a client side solution. The goal should be to always be able to directly connect the clients.

Notes

Testing

For camera access https is required. You may want to send your locally running instance out to the world by using one of the x scripts, like:

npm run x:localhost