我希望云计算机将消息发送到公司NAT /防火墙后面的计算机。
我的想法是在企业计算机上安装一个客户端,该客户端向云计算机发送长HTTP请求,当云端有消息时,它会返回响应。
我以为我发明了轮子,直到我读到“http隧道”(这就是我正在做的事情?)。 我还读到一些防火墙阻止非HTML流量,即使它是在http上。 那么我有什么机会让它发挥作用呢?
我还读到skype使用更复杂的机制。 是因为我的想法不起作用还是因为他们的想法更快?
我现在可以在速度上妥协 - 哪种方法有效且易于实施?
答案 0 :(得分:3)
我知道你想用TCP / HTTP做这件事, 但我这样做的方法是使用UDP NAT'打孔',从而建立UDP通道, 然后使用通过它发送的UDP数据包 渠道作为信号机制...
这些可能(或可能不)有用或相关:
http://en.wikipedia.org/wiki/STUN
http://en.wikipedia.org/wiki/Hole_punching
http://en.wikipedia.org/wiki/UDP_hole_punching
http://en.wikipedia.org/wiki/TCP_hole_punching
另外 - 如果你真的必须使用HTTP,你可以 只需每X秒发出一次新的HTTP请求......
HTTP轮询,如果你愿意......
答案 1 :(得分:2)
如果他们阻止端口80上的非html,你可以尝试端口443.除非有一个SSL“中间人”代理(不太可能),你就没事了。
IIRC skype使用端口跳跃,所以基本上你需要一个算法来找到你可以连接的未经过滤的(通过智能猜测的暴力)端口。