установка таймаута http.request узла - PullRequest
1 голос
/ 30 марта 2012

Я тестирую сервер, и мне нужно поддерживать какое-то соединение как можно дольше.Я хотел бы установить вручную время ожидания функции 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 голосов
/ 30 марта 2012

Вот что я использую: (работает для меня)


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

, где HTTP_REQUEST_TIMEOUT - это переменная, которую я объявил перед установкой 30000

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...