简而言之,我们的Web应用程序有两个单独的服务器。第一个是使用Websockets处理“聊天室”的主服务器,第二个服务器仅通过Websocket处理WebRTC音频聊天室。两台服务器都使用Express创建HTTPS服务器,并使用安全的Websocket和端口443。
我最近遇到了一个问题,其中公司客户端的防火墙阻止了仅与WebRTC服务器的wss连接。在用户浏览器中记录的错误是“ ERR_CONNECTION_TIMED_OUT”,这意味着用户从不通过Websocket连接。其他任何客户都没有发生过这种情况。
Websocket连接在用户和主服务器之间正常工作,并且没有向其防火墙添加任何规则来使用我们的应用程序。
有人遇到过类似的事情吗?哪种防火墙设置可能会导致这种情况?由于服务器位于自己的子域中,这可能是一个cors问题吗?
答案 0 :(得分:0)
主服务器可能会限制在端口443上发送的数据类型,该端口将使用SSL来保护所传输的数据。
请参阅此page for information on the "Well-know port numbers"。
可能需要在主服务器上为此配置的专用端口号上传输WebRTC音频数据。
答案 1 :(得分:0)
问题是主服务器WebSocket使用TCP,而WebRTC服务器使用UDP,并且默认情况下UDP被公司防火墙阻止。
WebRTC应该使用TCP作为备份,但是我假设握手仍然需要UDP。