Как установить время ожидания для http.createClient в Node.js? - PullRequest
4 голосов
/ 25 мая 2011

Есть сообщение: Как установить тайм-аут для http-соединений клиента в node.js

но ни один из ответов не сработает.

Итак, у меня есть такой код:

    var remote_client = http.createClient(myPost, myHost);
    var path = '/getData?';
    var param = {       };

    var request = remote_client.request("POST", path,);

    // error case
    remote_client.addListener('error', function(connectionException){
        console.log("Nucleus Error: " + connectionException);
        next(connectionException);
    });

    request.addListener('response', function (response) {
        response.setEncoding('utf-8'); 
        var body = '';

        response.addListener('data', function (chunk) {

        // get the result!              
        });
    });

    request.end();

Самая большая проблема заключается в том, что тайм-аут URL, к которому я подключаюсь. Поэтому я хотел бы установить тайм-аут, например, 15 секунд. Если это так, вызвать слушателя.

Однако в документации по http.createClient я не видел функций тайм-аута. Пожалуйста, порекомендуйте. Благодарю. :)

1 Ответ

6 голосов
/ 25 мая 2011
var foo = setTimeout(function() {
    request.emit("timeout-foo");
}, 15000);

// listen to timeout
request.on("timeout-foo", function() { });

request.addListener('response', function (response) {
    // bla
    // clear counter
    clearTimeout(foo);
});

Просто запустите счетчик самостоятельно.

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