Nodejs和Express服务器在2分钟后closures连接

我使用Express 4.X和节点js 0.12。

我的路线之一是file upload和处理,对于一些文件,上传和处理需要超过2分钟的默认超时。 我试图将超时值设置为超过2分钟,但它只是不工作,每次2分钟后服务器closures连接。

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分钟后closures连接。 尝试将节点版本更改为旧版本,但没有成功。 尝试所有在网上find的变化,但连接仍然closures…

server.setTimeout()是为所有连接设置HTTP连接超时的方法。

2分钟是默认的。

更新的答案

尝试这个:

 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 ****'); }); 

怎么样:

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

经过几个小时的尝试每一个答案我已经运行与提琴检查该请求。 原来,在我的开发环境即时通讯使用浏览器同步自动刷新浏览器窗口的任何变化。 在提琴手我注意到,长的上传POST请求浏览器同步绑定到2分钟超时的套接字连接。

closures浏览器同步代理之后,第一个解决scheme就像一个魅力。

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