Websocket配置默认情况下适用于大多数防火墙

时间:2012-06-01 09:33:44

标签: websocket port firewall

我们刚刚在我们的webapp上添加了一个websocket,它可以通过端口9090上的一般互联网(即不在防火墙后面)访问。一个客户端遇到问题,因为他们的防火墙阻止了对该端口的访问。

是否有一个聪明的解决方案,不需要客户端的额外配置?我已经读过防火墙经常允许端口443,并且是Skype的配置选项。这是一个选择吗?

我遇到的一个解决方案,但我不知道它是否可行,是配置Web服务器将端口80上的某些请求代理到websocket。但是,我不知道websocket是否可以共享端口80,因为它也将是服务正常的网页和ajax请求。

我们使用socket.io来实现websocket通信,并在node.js前面有一个web服务器。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

防火墙只是一种可能干扰WebSocket连接的中介。另一个主要类别是网络代理。

为了最大限度地提高WebSocket连接成功率,您需要在端口443上运行WSS(安全WebSocket),其中WS服务器具有由所有主要浏览器内置的CA颁发的证书。

这将适用于许多受限制的公司网络,除非有MITM代理检查(未加密的)流量。

原则上,WS可以与普通的旧HTTP服务器共享给定端口 - 但是这个主题与上面的主题正交。