I am writing a proof of concept application to allow several computers to communicate with each other and control hardware that is attached to them. I would like to use Socket.IO or something like it for the connection , but I often want to send data directly from one socket client to another instead of to the socket server. This is mostly to save network traffic. Is this possible?
It looks like your answer might be WebRTC, described here:
Do websockets allow for p2p (browser to browser) communication?
From an answer in the article: "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)."