我向其他服务器发送了大量请求,并希望限制它们以免使服务器过载。我的印象是,这可以使用pool
中的options
参数来完成,但我不确定我是否正确这样做。
我希望能够跟踪发送请求的时间,因为我正在尝试建立双工连接,并且需要确保同时发送相应的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));
}
实际发出请求时是否发生了事件?有没有办法让我跟踪每个请求的发送时间和顺序?
答案 0 :(得分:0)
我在Node.js documentation中找到了这个:
事件:'socket'#
function(socket){}
将套接字分配给此请求后发出。
您可以使用它来监视连接,因为它们被分配了这样的套接字:
http.get(options, function(res) {
// Do stuff
}).on("socket", function (socket) {
socket.on("connection") {
// record connection
};
});
请求库发出相同的事件,因为它只是内置http模块的包装器。