Получение странного поведения отказа в соединении

У меня есть экспресс-приложение nodejs, которое совсем недавно продемонстрировало странное поведение «отказ в соединении». Вероятно, это связано с моим апгрейдом nodejs — до версии 6.10.0 (а я пробовал и 7.9.0). Даже если апгрейд и есть начало дела, хотелось бы понять, почему так происходит.

Поведение: постоянно чередуется между успешным запуском приложения и получением «ошибки отказа в соединении». Эта закономерность постоянна. Мне нравится постоянство, а не прерывистость, но мне трудно понять, с чего начать поиск.

Вы сами видите это на http://162.243.254.205:1880/ (узел 7.9.0)

Когда я получаю сообщение «отказано в подключении», Chrome Devtools показывает все файлы «отказано в подключении». Повторная загрузка URL-адреса затем неоднократно успешна. т.е.

:1880/ritc_style.css Failed to load resource: net::ERR_CONNECTION_REFUSED
:1880/bootstrap/css/bootstrap.min.css Failed to load resource: net::ERR_CONNECTION_REFUSED
:1880/orion/built-editor.css Failed to load resource: net::ERR_CONNECTION_REFUSED
:1880/jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css Failed to load resource: net::ERR_CONNECTION_REFUSED
:1880/jsonviewer/jsonviewer.css Failed to load resource: net::ERR_CONNECTION_REFUSED
:1880/font-awesome/css/font-awesome.min.css Failed to load resource: net::ERR_CONNECTION_REFUSED
:1880/style.css Failed to load resource: net::ERR_CONNECTION_REFUSED
jquery-1.11.1.min.js Failed to load resource: net::ERR_CONNECTION_REFUSED
bootstrap.min.js Failed to load resource: net::ERR_CONNECTION_REFUSED
jquery-ui-1.10.3.custom.min.js Failed to load resource: net::ERR_CONNECTION_REFUSED
jquery.ui.touch-punch.min.js Failed to load resource: net::ERR_CONNECTION_REFUSED
jquery.confirm.min.js Failed to load resource: net::ERR_CONNECTION_REFUSED
tinymce.min.js Failed to load resource: net::ERR_CONNECTION_REFUSED
marked.min.js Failed to load resource: net::ERR_CONNECTION_REFUSED
built-editor.min.js Failed to load resource: net::ERR_CONNECTION_REFUSED
ace.js Failed to load resource: net::ERR_CONNECTION_REFUSED
ext-language_tools.js Failed to load resource: net::ERR_CONNECTION_REFUSED
d3.v3.min.js Failed to load resource: net::ERR_CONNECTION_REFUSED
main.js Failed to load resource: net::ERR_CONNECTION_REFUSED
settings.js Failed to load resource: net::ERR_CONNECTION_REFUSED

...

Сообщение об отказе в подключении выглядит как проблема с сетью. Однако, если я заменю простой тест на сервере (приложение helloworld Express), я не получу такого поведения, поэтому это должно быть как-то связано с nodejs.

Я в недоумении!

Кто-нибудь может помочь?

Спасибо

Колин Голдберг


person Colin G    schedule 28.04.2017    source источник
comment
Спасибо за публикацию сообщения об ошибке. Можете ли вы опубликовать часть кода, пожалуйста?   -  person Glen Pierce    schedule 28.04.2017
comment
Это экспресс-приложение - куча кода. Какой смысл мне публиковать?   -  person Colin G    schedule 28.04.2017


Ответы (2)


Вы обновили свои зависимости? Это кажется весьма вероятным источником вашей проблемы.

person Glen Pierce    schedule 28.04.2017

Я нашел причину этого.

Постоянное использование Chrome — что я предпочитаю — было причиной того, что я не дошел до этого момента раньше. Все, что я получал в Chrome, — это чередующаяся информация — успех (с соответствующими журналами консоли) и сбой (список сообщений об отказе в соединении) — последовательно повторяющиеся.

Когда я запустил его в Firefox, он сначала преуспел, затем потерпел неудачу, затем преуспел, а затем потерпел неудачу (то есть такое же поведение!). Но при втором сбое выдало сообщение об ошибке "Невозможно подключиться к (IP-адрес)" - т.е. поведение отличается от Chrome.

Затем я нашел сообщение об ошибке в журнале (почему-то я пропустил это раньше), указывающее, что произошел сбой (неясного) модуля, который сохранял и удалял события (отсюда и переменное поведение). Обновление этого модуля (ultron) похоже решило проблему.

Спасибо, Глен, за слова поддержки. Поскольку я (чаще всего) тороплюсь, чтобы закончить дела, легко запаниковать, особенно ближе к концу дня. Хороший ночной сон привел меня в правильное настроение, чтобы мыслить более ясно.

Колин Голдберг

person Colin G    schedule 29.04.2017
comment
Еще один момент: это приложение nodejs - и оказывается, что решение было решением nodejs. Однако nodejs находится на бэкэнде, а не на внешнем интерфейсе, который представляет собой html и javascript. И ошибки «отказ в соединении» определенно являются ошибками интерфейса — якобы не имеют ничего общего с nodejs. Именно из-за соединения через веб-сокет между интерфейсом и сервером это поведение соединило их и смогло быть обнаружено. - person Colin G; 29.04.2017