问题描述
我向其他服务器发送了很多请求,并希望限制它们,以免服务器超载。
我的印象是,可以使用options
的pool
参数来完成此操作,但是我不确定自己是否做得正确。
我希望能够跟踪何时发出请求,因为我正在尝试建立双工连接,并且需要确保同时发出相应的GET和POST请求。
这是我正在尝试的简化示例:
var request = require('request');
var options = {
'url': 'http://www.google.com',
'pool': {
'maxSockets': 3
}
};
for (var i = 0; i < 100; i++) {
request.get(options, (function(j) {
return function(err, res, body) {
console.log(j);
}
})(i));
}
实际发出请求时是否发出事件? 我有什么办法可以跟踪何时以及以什么顺序发送每个请求?
1楼
我在Node.js 找到了这个:
事件:“ socket”#
函数(套接字){}
在将套接字分配给此请求后发出。
您可以使用它来监视连接,因为它们是为套接字分配的,如下所示:
http.get(options, function(res) {
// Do stuff
}).on("socket", function (socket) {
socket.on("connection") {
// record connection
};
});
请求事件库发出相同的事件,因为它只是内置的http模块的包装。