3

socket.io を使用すると、ポート 843は、フラッシュがそのポートを使用するため、ファイアウォールなどの問題が最も少ないようです。

ただし、多くのネットワークはポート 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

テストされていませんが、ポート 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});
}
于 2012-09-20T19:02:34.330 に答える