0

我正在向另一台服务器发送大量请求,并希望限制它们以免服务器过载。我的印象是,这可以通过poolin 参数来完成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)); 
}

实际发送请求时是否发出事件?有什么方法可以让我跟踪每个请求的发送时间和顺序?

4

1 回答 1

0

我在 Node.js文档中找到了这个:

事件:'套接字'#

函数(套接字){}

在将套接字分配给此请求后发出。

您可以使用它来监视连接,因为它们被分配了这样的套接字:

http.get(options, function(res) {
    // Do stuff
}).on("socket", function (socket) {
    socket.on("connection") {
        // record connection
    };
});

请求库会发出相同的事件,因为它只是内置 http 模块的包装器。

于 2015-07-24T07:43:55.657 回答