设置节点的http.request超时

时间:2012-03-30 11:01:07

标签: node.js timeout

我正在测试服务器,我需要尽可能长时间保持连接。我想手动设置http.request()函数的超时。这就是我在我的代码中所做的。

var req = http.request(options, function(res) {
        res.setEncoding('utf8');

        res.on('data', function (chunk) {
            //do something with chunk
        });
});

我试过类似req.on('socket' function(socket){ socket.setTimeout(SOCKET_TIMEOUT); });的东西,但它给了我一些奇怪的错误,我认为这不是正确的方法。对于您的信息,我使用该方法得到的错误如下

Trace: 
    at Socket.<anonymous> (events.js:133:17)
    at ClientRequest.<anonymous> (/path/server_nologs.js:168:10)
    at ClientRequest.emit (events.js:88:20)
    at Array.1 (http.js:1250:9)
    at EventEmitter._tickCallback (node.js:192:40)
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.

这对我来说有点神秘。有人可以解释我如何设置超时?否则,如果我的方法是正确的,我怎么能避免得到那个错误?

1 个答案:

答案 0 :(得分:0)

这是我正在使用的:(适合我)


req = httpClient.request(urlParts.method, urlParts.path, urlParts);
req.connection.setTimeout(HTTP_REQUEST_TIMEOUT);

其中HTTP_REQUEST_TIMEOUT是在设置为30000之前声明的var