我对html5的websockets规范感到非常兴奋,但我有一个问题。
现在每个人都在某个网络上运行,路由器(有线/无线)内置防火墙,windows也有内置防火墙。
考虑到这一点,当服务器尝试连接回启动websocket握手的浏览器时,绝大多数用户都会失败吗? (大多数人不知道如何在他们的路由器上设置端口转发)
或者我的想法是不正确的,它会很好吗?
答案 0 :(得分:26)
我不是专家(所以请检查确认),但我相信会有一个UPGRADE机制,可以建立常规的HTTP连接,然后升级到WebSocket,所以没有现有的防火墙规则会干扰,除非他们这样做积极的应用程序级别数据包连接仍由浏览器启动。
答案 1 :(得分:9)
HTML 5 WebSockets不需要端口转发。继续从客户端建立连接,但是一旦建立连接,客户端和服务器不对称就会消失。 WebSockets还使用HTTPS当前使用的相同CONNECT机制来完成代理。
答案 2 :(得分:7)
由于防火墙通常只是强制执行入站流量拒绝和出站流量路由规则(通常通过代理服务器),因此通常没有与WebSocket流量相关的特定防火墙问题。
代理服务器(在某种程度上,某些负载平衡路由器)也是另一回事(参见Why don't current websocket client implementations support proxies?)