I currently have two parties set up:
- typical HTTP web server
- native app distributed to consumers (presumably behind typical home router/firewall configuration)
The app is designed to work on certain small problems, but I want apps configured to work on similar problems to work together. Right now, the only solution I can come up with is passing all the data through the web server. However I was wondering if there is any protocol that will allow my native app to use the web server just to facilitate the initial TCP handshake and then continue without the web server relaying the information in the middle?
My desired flow would be like so:
- Web server waits around for connections
- Native app instance A connects to server and notifies it that A is working on problem (i)
- Native app instance B connects to server and notifies it that B is working on problem (i)
- Server matches A and B as working on similar problems and notifies them both to initiate a connection
- Both A and B send TCP SYN, SYN-ACK, ACK messages as appropriate to the web server, but then instead of using the traded TCP protocol parameters against the web server they continue to communicate directly with each other.
A. is such a flow possible?
B. is there a protocol that attempts to establish this?
If the answer to both of the above is "no" is there something else I can try to cut out the web server from middle-manning the communications?