2013-06-18 7 views
5

मैं node.js. पर http-proxy का उपयोग कर रहा हूं। मेरे पास एक अन्य सर्वर के लिए प्रॉक्सी अनुरोध है। मेरी आवश्यकता यह है कि प्रॉक्सी अनुरोध 10 सेकंड में टाइमआउट होना चाहिए। इसके अलावा जब समय बाहर होता है, मैं उपयोगकर्ता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 
    }) 

यह ज्ञात नहीं कारणों की वजह से (समय समाप्ति सेट है सक्षम, 17 में होना चाहिए यह बार सेक) लेकिन कॉलबैक कभी निष्पादित नहीं होता है। यह सिर्फ मानक ब्राउज़र संदेश से पता चलता

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

अग्रिम

धन्यवाद

अद्यतन:

मैं

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(); 
    }); 

की कोशिश की इस बार विधि लागू हो जाता है, लेकिन यह है कि शिकायत प्रतिक्रिया पहले ही भेजी जा चुकी है, इसलिए हेडर सेट नहीं कर सकते

उत्तर

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(); 
}); 
संबंधित मुद्दे