2015-10-01 15 views
5

Im के बाद कनेक्शन बंद कर देता है।नोडज और एक्सप्रेस सर्वर एक्सप्रेस 4 एक्स और नोड जेएस 0.12 का उपयोग कर 2 मिनट

मेरे मार्गों में से एक फ़ाइल अपलोडिंग और प्रसंस्करण के लिए है और कुछ फ़ाइलों के लिए अपलोड और प्रक्रिया 2 मिनट के डिफ़ॉल्ट टाइमआउट से अधिक लेती है। मैंने सेटटाइमआउट को 2 मिनट से अधिक मूल्यों पर करने का प्रयास किया है, लेकिन यह अभी काम नहीं कर रहा है, सर्वर हर बार 2 मिनट के बाद कनेक्शन बंद कर देता है।

server.timeout = 60 * 60 * 1000; // still closes after 2 minutes 
server.on('connection', function(socket) { 
    socket.setTimeout(700 * 1000); // still closes after 2 minutes 
}); 

res.setTimeout(0);// still closes after 2 minutes 
req.setTimeout(0);// still closes after 2 minutes 
res.connection.setTimeout(0);// still closes after 2 minutes 

कनेक्ट-टाइमआउट मिडलवेयर की सहायता नहीं की जाती है, यह केवल 2 मिनट के बाद कनेक्शन बंद रखती है। नोड संस्करण को पुराने संस्करण में बदलने की कोशिश की लेकिन बिना किसी सफलता के। ऑनलाइन मिले सभी बदलावों का प्रयास किया, लेकिन कनेक्शन अभी भी बंद हो गया है ...

+0

[Express.js प्रतिक्रिया समय समाप्त] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/21708208/express-js-response-timeout) – Ionut

+0

की कोशिश की है कि के रूप में अच्छी तरह से, एक ही में मिडलवेयर परिणाम कनेक्ट 2 मिनट का समय समाप्ति ... –

+0

उस पृष्ठ से अंतिम उत्तर पढ़ें। – Ionut

उत्तर

-1

हर कोशिश कर के कुछ ही घंटों के बाद उपलब्ध का जवाब मुझे लगता है कि अनुरोध के लिए Fiddler साथ एक निरीक्षण समाप्त हो चुकी थी। यह पता चला है कि मेरे विकास वातावरण में ब्राउज़र-सिंक का उपयोग कर किसी भी बदलाव पर ब्राउज़र विंडो को रीफ्रेश करने के लिए उपयोग कर रहा हूं। फिडलर में मैंने देखा कि अपलोड POST अनुरोध ब्राउज़र-सिंक के साथ एक लंबे समय तक इसे एक सॉकेट कनेक्शन से बंधे जिसमें 2 मिनट का टाइमआउट था।

ब्राउज़र-सिंक प्रॉक्सी को बंद करने के बाद पहला समाधान एक आकर्षण की तरह काम करता था।

server.on('connection', function(socket) { 
    socket.setTimeout(600 * 60 * 1000); // now works perfectly... 
}) 
4

server.setTimeout() वह तरीका है जो सभी कनेक्शन के लिए HTTP कनेक्शन टाइमआउट सेट करता है।

2 मिनट डिफ़ॉल्ट हैं।

UPDATED उत्तर

इस प्रयास करें:

var express = require('express'); 
 
var http = require('http'); 
 

 
var app = module.exports.app = express(); 
 
var server = http.createServer(app); 
 
server.setTimeout(10*60*1000); // 10 * 60 seconds * 1000 msecs 
 
server.listen(appConfig.port, function() { 
 
    var logger = app.get('logger'); 
 
    logger.info('**** STARTING SERVER ****'); 
 
});

या इस:

http.request(url).setTimeout() 

इसके अलावा, यह एक ब्राउज़र समस्या हो सकती है। this पढ़ें।

+0

कोशिश की कि 120000ms –

+0

के बाद भी कनेक्शन बंद हो गया है मैंने अपना जवाब अपडेट कर लिया है। अब कोशिश करो। – Ionut

1

तरीके के बारे में:

server.on('connection', function(socket) { 
    socket.setTimeout(5 * 60 * 1000); 
    socket.once('timeout', function() { 
    process.nextTick(socket.destroy); 
    }); 
}); 
+0

जैसा कि बताया गया है, टाइमआउट मिडलवेयर काम नहीं कर रहा है क्योंकि कनेक्शन 2 मिनट के बाद बंद हो जाता है। –

+0

मैंने इसे देखा, इसलिए मैं अपना जवाब अपडेट कर रहा था, अब जांचें (: – num8er

+0

नहीं, अभी भी वही है :(यह मुझे पागल बना दिया है, और पागल हिस्सा है कि एक महीने से पहले socket.setTimeout() ठीक हो गया था और अचानक 2 दिन पहले यह किसी भी कारण से वापस नहीं आया। –

संबंधित मुद्दे