62
votes

Using HTML5 Websockets, can I open a socket directly between 2 clients (browsers) (assuming I know their IP addresses and there are no NAT traversal issues). I want to send some data directly from one browser to another browser, essentially creating a P2P network. Everything I've read so far on the web, websockets are all used to communicate between client and server, but nothing about client to client.

3

3 Answers

42
votes

No

Already answered here for more details: Do websockets allow for p2p (browser to browser) communication?

Update:

The WebRTC protocol and API is making rapid progress and allows a Data Channel to be established between two peers (you still may need a STUN/TURN server for the initial NAT traversal and setup).

7
votes

From past to future: Pick your implementation.

  • Most modern browsers support peer to proxy to peer using Websockets.
  • Peer to peer is only available using certain browsers plug-ins for example Opera Unite and FireFox Pow.
  • Major browsers are in the process of implementing WebRTC which will allow peer to peer.
2
votes

If you just don't want to implement server your self you can use https://httprelay.io . No additional libraries required, all communication based on simple AJAX calls.