Здесь вы можете задать любые вопросы по MyChat, по работе программы, её настройке, лицензированию и т.д.
Аватара пользователя
Dmitry Krivosheev
После обновления MyChat на версию 2023.8.0 и потом на последнюю 2023.8.1 перестало пускать через интернет по веб в админку. В локальной сети по IP сервера - пускает. А по имени тоже нет! Пробовал в разных браузерах.
Аватара пользователя
Dmitry Krivosheev
Зависает на окне "Обработка запроса". Смотрите скриншот.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Андрей Раков
Проверьте на вашем сетевом оборудовании (роутере) разрешение подключений через WebSocket по внешнему подключению, протокол "wss://"

Я попробовал на вашем домене поменял приоритет websoket->polling и прошла попытка проверки авторизвции.
Аватара пользователя
Dmitry Krivosheev
Я не понял что вы поменяли и где это? Можете подробнее расписать или скриншоты сделать?
Аватара пользователя
Андрей Раков
Вам нужно проверить настройки вашего сетевого оборудования или софта, через который вы выходите в интернет, есть ли там настройка доступа для WebSoket.
Аватара пользователя
Dmitry Krivosheev
У нас используется Nginx. Там эта настройка включена.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Андрей Раков
Ну, я не могу точно подсказать по конкретному софту — поэкспериментируйте.

Все данные между браузером и сервером передаються по websoket-там.

Если не получится, найдите файл loader.js в папке установленного сервера и замените код:
Код: Выделить всё
task.AddTask(function () {
    loadSource.apply(this, [MC_RESOURCE[loadProjectType][MC_RESOURCE[loadProjectType].length - 1], function () {
        window.mcLoader.label.parentNode.removeChild(window.mcLoader.label);
        window.mcLoader = null;
    }])
});

на
Код: Выделить всё
task.AddTask(function () {
    loadSource.apply(this, [MC_RESOURCE[loadProjectType][MC_RESOURCE[loadProjectType].length - 1], function () {
        window.mcLoader.label.parentNode.removeChild(window.mcLoader.label);
        window.mcLoader = null;

        mcConst.io_transport = ["polling", "websocket"];
    }])
});


Данные будут идти обычными POST запросами во всех веб-сервисах чата.
Аватара пользователя
Dmitry Krivosheev
Просто не понятно почему по IP сервера - веб интерфейс работает, как обычно, а по имени после обновления перестал!
Аватара пользователя
Андрей Раков
Просто по ip адресу вы заходите локально на сервер, а обращаясь по имени домена — вы обращаетесь к DNS серверам, которые возвращают внешний ip и подключение идет через интернет.
Аватара пользователя
Андрей Раков
После обновления мы поменяли приоритет работы с Polling на WebSoket.
Аватара пользователя
Алексей Пикуров
Wiki про WebSockets
Аватара пользователя
Dmitry Krivosheev
Помогло изменение в loader.js (в папке c:\Program Files (x86)\MyChat Server\node\server\service\mctools\other\), про которое вы писали выше. Но это, я так понимаю, временное решение!
Аватара пользователя
Алексей Пикуров
Это плохое решение, следующий апдейт автоматически перезапишет этот файл. Покопайтесь в настройках файрвола, антивируса или другого софта, который может управлять WEB-трафиком между клиентом и сервером MyChat.

Протокол websockets — это TCP, но работает поверх http(s), сначала открывается обычное соединение http/https, а затем приложения переходят на обычный TCP. Посмотрите в эту сторону, возможно, в правилах фильтрации проставлен у вас где-то именно HTTP(s), а не TCP.
Аватара пользователя
Андрей Раков
Я оставлю эту строку закомментированной в этом файле в сборке, чтобы можно было глобально перейти на старый метод связи.

Пока эта ситуация не массовая — будет такое решение.
Аватара пользователя
Dmitry Krivosheev
Проблема, думаю, в реализации протокола Websockets в Nginx Proxy Manager, который мы используем, чтобы перенаправить внешние запросы на наши внутренние сервера. Но решения я пока не нахожу.