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-соединение будет закрываться каждый раз, и вы не получите сообщение об ошибке, если сервер будет закрыт после получения вашего ответа.