3

使用 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。

4

1 回答 1

0

Not tested but wouldn't re-initialize socket to port 80 work?

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});
}
于 2012-09-20T19:02:34.330 回答