何らかの理由で、http-proxy により、socket.io ベースの websocket 接続が 2 分ごとに再接続されます。再接続前のメッセージは、クライアントとサーバーの間で正常に機能しています。プロキシをバイパスすると、websocket 接続は再接続なしで機能します。プロキシ構成は非常に基本的なものであり、nodejitsu の例に従います。
var http = require('http'),
httpProxy = require('http-proxy');
var options = {
hostNameOnly: true,
router: {
'example.com/sockets/': '127.0.0.1:9001'
}
};
var proxyServer = httpProxy.createServer(options);
proxyServer.listen(80);
また、構成でタイムアウト オプションを変更しようとしましたが、再接続の問題には影響しません。
timeout: 120000 // override the default 2 minute http socket timeout value in milliseconds
ソフトウェア バージョン: Ubuntu 12.04 サーバー、node.js 0.8.16、http-proxy 0.8.7、socket.io 0.8.7。
これは、dev Mac (10.8.3) および Ubuntu デスクトップ 12.04 (virtualbox) では完全に機能しますが、サーバーでは機能しません。