Тайм-аут зависания сокета nodejs - PullRequest
1 голос
/ 12 марта 2019

По сути, это ошибка тайм-аута для длительного процесса (около 30 минут).

как я могу увеличить время ожидания для запроса? Я пробовал request.setTimeout(0, console.log);, но это никак не влияет на это.

var request = http.request({
    hostname: 'localhost',
    method: 'POST',
    port: 3000,
    headers: {
        'accept': 'application/json;charset=UTF-8',
    }
}, function(response){
    var body;
    var buffers = [];
    response.on('data', buffers.push.bind(buffers));
    response.on('end', function(){
        try {
            body = Buffer.concat(buffers).toString();
        } catch(error) {console.error(body)}
    });
}).on('error', function(error){ // errors caught in here
    console.error("http error");
    console.error(error);
});

request.setTimeout(0, console.log);

Ошибка:

{ Error: socket hang up
    at createHangUpError (_http_client.js:323:15)
    at Socket.socketOnEnd (_http_client.js:426:23)
    at Socket.emit (events.js:194:15)
    at endReadableNT (_stream_readable.js:1103:12)
    at process._tickCallback (internal/process/next_tick.js:63:19) code: 'ECONNRESET' }

Редактировать

enter image description here

Скриншот 2

Преступник грозен на стороне сервера и выдает прерванную ошибку

enter image description here

1 Ответ

0 голосов
/ 12 марта 2019

Вам необходимо установить тайм-аут до или при отправке запроса.

var request = http.request({
    hostname: 'localhost',
    method: 'POST',
    port: 3000,
    timeout: 0,
    headers: {
        'accept': 'application/json;charset=UTF-8',
    }
}, function(response){
    var body;
    var buffers = [];
    response.on('data', buffers.push.bind(buffers));
    response.on('end', function(){
        try {
            body = Buffer.concat(buffers).toString();
        } catch(error) {console.error(body)}
    });
}).on('error', function(error){ // errors caught in here
    console.error("http error");
    console.error(error);
});

Документация API - ваш друг;) https://nodejs.org/api/http.html#http_http_request_options_callback

...