2013-06-18 16 views
5

node.jsでhttp-proxyを使用しています。別のサーバーにプロキシリクエストがあります。私の要件は、プロキシ要求が10秒でタイムアウトする必要があるということです。タイムアウト発生したときも、私はそれの時間は17に出て、私はこれが原因ではない知られている理由のために(タイムアウトを設定しますnode.js http-proxyリクエスト時にタイムアウトとハンドラを設定する方法

var proxy = new httpProxy.RoutingProxy(); 
    req.on('error', function (err,req,res){ 
     res.send("An error occured"); 
    }); 
    proxy.proxyRequest(req, res, { 
    host: 'localhost', 
    port: port, 
    headers:req.headers, 
    timeout:10000 
    }) 

以下のコードを持っているユーザー

にカスタムメッセージを表示することができるはずですコールバックは決して実行されません。私は

proxy.on('proxyError', function (err,preq,pres) { 
    pres.writeHead(500, { 'Content-Type': 'text/plain' }); 
    pres.write("An error happened at server. Please contact your administrator."); 
    pres.end(); 
    }); 

にメソッドが呼び出されます。この時間を試してみましたが、それはと文句を言い

:それはちょうど、事前

The connection was reset 
      The connection to the server was reset while the page was loading. 

おかげ

UPDATEを標準のブラウザメッセージを示し応答は既に送信されているので、ヘッダーを設定できません

答えて

2

これを試してみるとよいでしょう:

proxy.on('error', function(err, preq, pres){  
    pres.writeHead(500, { 'Content-Type': 'text/plain' }); 
    pres.write("An error happened at server. Please contact your administrator."); 
    pres.end(); 
}); 
関連する問題