Dim*_*man 8 javascript node.js express
我使用Express 4.X和节点js 0.12.
我的一条路线是文件上传和处理,对于某些文件,上传和处理需要超过2分钟的默认超时.我试图将timeout设置为超过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
Run Code Online (Sandbox Code Playgroud)
连接超时中间件也没有帮助,它只是在2分钟后继续关闭连接.尝试将节点版本更改为旧版本但没有成功.尝试在网上找到的所有变化,但连接仍然关闭...
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 ****');
});Run Code Online (Sandbox Code Playgroud)
或这个:
http.request(url).setTimeout()
Run Code Online (Sandbox Code Playgroud)
此外,它可能是一个浏览器问题.读这个.
经过几个小时的尝试每个可用的答案后,我已经使用 fiddler 对该请求进行了检查。事实证明,在我的开发环境中,我使用浏览器同步来在发生任何更改时自动刷新浏览器窗口。在 fiddler 中,我注意到长时间的上传 POST 请求浏览器同步将其绑定到一个有 2 分钟超时的套接字连接。
关闭浏览器同步代理后,第一个解决方案非常有效。
server.on('connection', function(socket) {
socket.setTimeout(600 * 60 * 1000); // now works perfectly...
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10323 次 |
| 最近记录: |