node.js отдых клиента после сбоя сервера

У меня есть вопрос о restify клиента rest.js узла. Поэтому я делаю запрос на сервере и получаю ответ (он хорошо печатается на консоли), но когда я выключаю свой сервер, мой остальной клиент зависает с ошибкой:

events.js:72
        throw er; // Unhandled 'error event
              ^
Error: read ECONNRESET
    at errnoException (net.js:901:11
    at TCP.onread (net.js:556:19

Мой код прост:

var restify = require('restify');

// Creates a JSON client
var client = restify.createJsonClient({
  url: 'http://127.0.0.1:3000/api/check'
});

client.get('', function(err, req, res, obj) {    
  console.log(obj);  // print response
});

Мой сервер также написан на node.js и использует экспресс-фреймворк и стандартный API, который работает месяцами на производстве, поэтому я сомневаюсь, что это проблема в этом. Похоже, клиент не закрывал TCP-соединение с сервером, но в руководствах по restify я не нашел инструкций для этого.

Спасибо за любую информацию!

1 ответ

Добавлять agent: false к созданию вашего json-клиента:

var client = restify.createJsonClient({
    url: 'http://127.0.0.1:3000/api/check',
    agent: false
});

Таким образом, TCP-соединение будет закрываться каждый раз, и вы не получите сообщение об ошибке, если сервер будет закрыт после получения вашего ответа.

Другие вопросы по тегам