Nodejs и обмен сообщениями

8 июля 2021 в 7:47
Аватар пользователя WillWe WillWe 0 8 Решено

Народ, привет!
Чот я голову сломал.
Несколько месяцев назад я делал пет-проект, в котором предполагается обмен сообщениями между пользователями.
Решил настроить это через nodejs.
Всё настроил, проверил. Всё работало, сообщения уходили и приходили, при этом использовался ssl и nodejs прекрасно с ним работал.
Потом я отложил этот проект до лучших времен и ничего вообще не трогал. Иногда только заходил посмотреть, что ничего не упало.

И вот сегодня захожу снова, а друпал говорит что nodejs модуль не видит сертификата, точнее говорит, что срок действия его истёк.
Там идёт обращение по 8080 и 8081 порту. Сам сайт сертификат видит и он действителен до сентября. А по 8080 и 8081 порту говорит что он истёк 3 июля.
Файлы сертификата на месте.
В чём тут может быть порыта собака?
Ладно бы он никогда не работал, но сначала то всё было ок!!!

Комментарии

Прошу прощения что вклиниваюсь в тему, но давно хотел спросить: а почему именно nodejs используется для обмена сообщениями? Что такого есть в nodejs, что в принципе нереализуемо на PHP?

8 июля 2021 в 8:06

А причина проста - вебсокеты. Обмен сообщениями в реальном времени безо всякого аякса. Юзер отправил - другой тут же получил. И всё это без дёргания сервера аяксом - красиво же.
Сейчас всё заработало.

8 июля 2021 в 9:03

Спасибо, более-менее понятно. Вижу, что есть реализации websockets и для PHP, но при этом опытные люди пишут, что все равно проще это делать на nodejs даже если основной сайт на PHP.
Поверю опытным людям, самому глубоко вникать пока повода нет Wink

8 июля 2021 в 9:35

Просто для друпала был модуль уже - node js integration и ещё один - private messages, кажется так.
Вот я и взял уже это решение. Там правда конечно в последнем модуле всё неидеально и глюки, но главное что мессаги ходят туда-сюда, а интерфейс я надеюсь подшаманить с помощью css....

8 июля 2021 в 10:47

Я бы предположил, что сам сайт работает с одними сертификатами, а для сервера ноды какие-то другие были указаны (возможно, что полученные через letsencrypt, с малым сроком жизни. Или для сайта сертификат перевыпустился автоматически, а для ноды он лежит в другом месте). В конфигах можно найти эти сертификаты и посмотреть в них срок действия.

8 июля 2021 в 8:21

Народ, я разобрался в чём дело. Оказывается пользователя, под которым запускается js скрипт не было доступа к файлам сертификата. При чем сначала то он был, а при перевыпуске эти чортовы сертификаты поменяли хозяина и права сбросились (как бы это решить то автоматически.... надо думать...)
При чем, я менял права уже, но пока не перезапустил сами приложения js (типа forever restartall) он всёравно не работал. Вот так вот.
То есть такое ощущение, что даже если настроить права к сертификатам для пользователя js, всёравно при перевыпуске он будет видеть старые и нужно время от времени перезапускать сами приложения js??? ну и гемор )))

8 июля 2021 в 9:02

Приложения на node.js имеют свойство "подтекать" со временем, сжирая всё больше и больше ресурсов и работая всё медленнее. Поэтому иногда имеет смысл ставить перезапуск приложения в крон, например, раз в сутки или раз в неделю, в зависимости от нагруженности приложения.

8 июля 2021 в 9:58

да, я уже так и сделал - тупо раз в сутки перезапускаю forever restartall и всё. Заодно и с сертификатами теперь вроде как проблем быть не должно.

8 июля 2021 в 10:49