ネットワーク経路上にWebSocketが使えないProxyやFirewallがある環境で,Socket.IO (0.9.16)のデフォルト設定のクライアントの挙動をChrome DevToolsで見ていると,websocketからxhr-pollingへフォールバックし,接続が確立するまでに約10秒もかかる.
そこでクライアント側で設定変更(1行追加)することで,フォールバックして接続するまでの間隔を短くする.下記のサンプルコードは2秒後にフォールバックするようにしてみた.
var start = new Date();
var socket = io.connect();
socket.socket.options['connect timeout'] = 2000; // デフォルト値の10秒から2秒に変更.
socket.on('connect', function() {
console.log(start - new Date() + 'msec');
});
https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO#client