【发布时间】:2013-05-31 03:01:28
【问题描述】:
我正在使用 node.js 构建一个数据传输代理服务器。 它使用 http(s) REST API 将客户端的请求通过管道传输到 swift 对象存储服务器。
它适用于个人请求,但当传出 为相同的目标和端口建立了 tcp 连接(443) 达到五,它不能创建任何新的连接。
这似乎不是O/S的问题,因为我尝试使用java servlet创建超过10个连接并且它工作正常。
我尝试为 globalAgent 设置最大套接字,如下所示,但它没有改变任何东西。
http.globalAgent.maxSockets = 500;
https.globalAgent.maxSockets = 500;
这是我的源代码的一部分。
app.post('/download*', function(req, res){
/***********************************************************
* Some codes here to create new request option
***********************************************************/
var client = https.request(reqOptions, function(swiftRes) {
var buffers = [];
res.header('Content-Length', swiftRes.headers['content-length']);
res.header('Content-Type', swiftRes.headers['content-type']);
res.header('range', swiftRes.headers['range']);
res.header('connection', swiftRes.headers['connection']);
swiftRes.pipe(res);
swiftRes.on('end', function(err){
res.end();
});
});
client.on('error', function(err) {
callback && callback(err);
client.end(err);
clog.error('######### Swift Client Error event occurred. Process EXIT ');
});
client.end();
});
我希望我能得到这个问题的解决方案。
提前致谢。
【问题讨论】:
标签: node.js http request connection limit