Что делает издатель
Издатель — встроенный служебный процесс, который проверяет локальный FXServer и отправляет подписанный heartbeat в каталог. Он сообщает доступность, число игроков и другие разрешённые сведения. Он не запускает игровой режим, не заменяет ключ доступа и не предоставляет UDP-туннель.
В сборке 1.1.3 процесс запускается монитором автоматически после настройки. Отдельно запускать программу публикации, назначать ей задачу Windows или хранить второй экземпляр ключа для обычной установки не требуется.
Включение публикации
Подготовьте одобренную карточку, publisher.json и соответствующий .seed из раздела ключей публикации портала. Запустите Configure-Server.cmd, проверьте выбранный сервер и доступ игроков, включите публикацию на последнем шаге и импортируйте пару файлов. Вместо файла seed допустимо предусмотренное мастером поле ввода того же ключа публикации.
ID в конфигурации публикации должен совпадать с сервером, для которого сохранён ключ доступа. Endpoint должен соответствовать одобренному адресу. Примените мастер и дождитесь запуска игрового процесса.
Повторная настройка может использовать сохранённую пару. Новый publisher.json с другим keyId требует соответствующего ключа: старый seed не становится новым от переименования файла.
Локальная проверка перед отправкой
Издатель опрашивает локальные info.json и dynamic.json. Проверяется совпадение ID, включённый admission, отсутствие LAN-режима и корректность данных сервера. При провале проверки heartbeat удерживается: каталог не должен показывать чужой или неготовый процесс как работающий сервер.
Проверка выполняется по loopback-адресу и вашему игровому порту. Открывать dynamic.json через публичный шлюз для работы издателя не нужно. Отдельный проброс порта издателя тоже не нужен: он инициирует исходящее HTTPS-соединение.
Интервалы и состояния
В текущей конфигурации первая попытка отправки выполняется при старте, последующие — примерно каждые 30 секунд. Каталог использует возраст последнего принятого heartbeat: после 60 секунд без обновлений сервер может перейти в suspected_offline, после 120 секунд запись перестаёт считаться свежей. Обновление страницы и кэш отображения могут добавлять задержку.
Эти интервалы относятся к центральному сервису, а не к параметру server.cfg. Отзыв последнего ключа публикации или изменение статуса модерации может убрать сервер из публичного представления раньше истечения таймера.
| Событие | Что ожидать |
|---|---|
| Игровой процесс ещё загружается | Издатель ждёт корректный локальный ответ |
| Сервер работает, ключ действителен | Регулярные принятые heartbeat |
| Игровой процесс остановлен в txAdmin | Новые heartbeat не подтверждают доступность |
| Монитор завершён | Его служебный издатель завершается |
| Издатель неожиданно упал | Монитор пытается перезапустить его примерно через 15 секунд |
| Карточка отправлена на повторную модерацию | Публичная доступность зависит от нового одобрения |
Проверка по журналу
Ищите строки с префиксом [OpenM catalog] в выводе монитора и соответствующих журналах запуска. heartbeat accepted означает принятие обновления центральным сервисом. heartbeat withheld: ... означает локальную причину, по которой отправка не выполнялась; читайте продолжение строки.
Не публикуйте полный журнал без просмотра: сторонние ресурсы могут вывести строку БД или иной секрет. Отдельно записывайте время, ID сервера, состояние карточки и статус HTTP. Успешный heartbeat подтверждает публикацию, но не реальное подключение игрока через UDP.
Типовые причины отказа
- ID не совпадает: проверьте профиль txAdmin и
sv_openmServerId; не правьте ID наугад, повторно выберите правильную карточку в мастере. - Локальный HTTP недоступен: запустите игровой процесс, проверьте порт и ошибку загрузки
server.cfg. - Ключ отозван или приостановлен: проверьте состояние в портале и импортируйте новую соответствующую пару.
- Endpoint не совпадает: обновите карточку и конфигурацию после смены адреса; при необходимости дождитесь модерации.
- Неверное время Windows: включите синхронизацию времени; подписи имеют ограниченное окно действия.
- Нет исходящего HTTPS: проверьте DNS, прокси, сертификаты и соединение с основным доменом.
Отключение и восстановление
Для планового отключения снимите публикацию в мастере и примените настройки. Для компрометации ключа отзовите его в портале независимо от состояния компьютера. После восстановления импортируйте актуальную пару и дождитесь принятого heartbeat. Никогда не запускайте две копии одного сервера с одним ID и ключом: они будут сообщать противоречивое состояние.