Javascript 如何检查客户端是否可以通过端口843连接?

Javascript 如何检查客户端是否可以通过端口843连接?,javascript,socket.io,Javascript,Socket.io,使用socket.io,端口843似乎给防火墙等带来的问题最少,因为flash使用该端口 但是,许多网络会阻塞端口843,因此根本无法连接 我设置了一个负载平衡器,可以将http流量从端口80重定向到843这样的人,但我的问题是,我想不出如何测试是否有人阻止了端口843 有什么想法吗 或者,如果我可以将socket.io的XHR方法更改为始终使用备用连接url,那可能是最理想的。我更讨厌做任何有超时的测试,因为这会更延迟连接。最好在websocket连接尝试超时后进行更改 我想的是 var so

使用socket.io,端口843似乎给防火墙等带来的问题最少,因为flash使用该端口

但是,许多网络会阻塞端口843,因此根本无法连接

我设置了一个负载平衡器,可以将http流量从端口80重定向到843这样的人,但我的问题是,我想不出如何测试是否有人阻止了端口843

有什么想法吗

或者,如果我可以将socket.io的XHR方法更改为始终使用备用连接url,那可能是最理想的。我更讨厌做任何有超时的测试,因为这会更延迟连接。最好在websocket连接尝试超时后进行更改

我想的是

var socket = io.connect('http://example.com:843', {'connect timeout':5000}); 

socket.on('connect_failed', function(){
    // change socket to connect to port 80
}

但我不确定在那一点上如何更改连接url。

未测试,但不会重新初始化套接字以使端口80正常工作

var socket = io.connect('http://example.com:843', {'connect timeout':5000}); 

socket.on('connect_failed', function(){
    // change socket to connect to port 80
    socket = io.connect('http://example.com:80', {'connect timeout':5000});
}

这正是我最后尝试的。我不知道目前它的实际运行情况如何。有些人仍然说存在问题。另外,对于一些人来说,端口80方法可能是因为它要通过负载平衡器,并且是XHR轮询,所以会断开很多连接。对于WebSocket,最好让它始终连接到:843;对于xhr,最好连接到:80。@sadtaco您必须在本地测试它,以查看它是否工作。尝试使用虚拟盒复制生产设置。。。这是你真正能够测试、调试和部署A级软件的唯一方法。。。