hi,
well, I went ahead and did it anyway, at least I learnt something .
@calmh: relay over port 443 is good, but requires a dedicated server with port 443 available. Many people already own a private server/vm used for a personal web site etc, in this case port 443 may be already used by the web server, and thus not available for relay server. My solution may be put behind a forward proxy, server side, and work side by side with an existing web server (for example I can leave my web pages at https://personal.site and add my http-relay service at https://personal.site/http-relay/ )
@canton7: actually bidirectional data transfer over http is used by many rich javascript apps. I’ve put together a simple implementation and it works well enough… the http overhead is not even that much, compared to a regular tcp connection. You never make 1000req/sec, more like one long connection every 30sec or so for pulling, and one ondemand conenction for pushing. The protocol does not require realtime latency, so you can buffer data and make less http calls, for better protocol efficency.
@damajor: my impl use plain http POST, with my company firewall it works; it’s possible to add code to mimic a web page access on both client and server side, if necessary.
I add a little diagram to show my current implementation structure; the client module must be integrated in the client app to work; the server module instead is just a proxy/filter for the unmodified syncthing relay app, and integrates with the current relay network.