我正在测试服务器,我需要尽可能长时间保持连接。我想手动设置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.
这对我来说有点神秘。有人可以解释我如何设置超时?否则,如果我的方法是正确的,我怎么能避免得到那个错误?
答案 0 :(得分:0)
这是我正在使用的:(适合我)
req = httpClient.request(urlParts.method, urlParts.path, urlParts);
req.connection.setTimeout(HTTP_REQUEST_TIMEOUT);
其中HTTP_REQUEST_TIMEOUT是在设置为30000之前声明的var