Цель:
Соответствовать требованиям сертификационного органа для получения лицензии в Болгарии.
Требование регулятора:
Во время игры должно быть видно локально время со стороны сервера в локальном Болгарском времени. (то есть региональная лицензия просит отражать время в региональном часовом поясе)
Пример реализации:
У Evolution в рулетке сверху поверх видео транслируется время в студии.
https://7bitcasino.com/games/evolution/blackjack-vip-44?fullscreen=game
Показывается мое локальное время на устройстве # время в студии. Время в студии обновляется раз в 30 секунд поверх видео.
Реализация
Нам необходимо на сервере реализовать часы, которые мы бы транслировали для всех пользователей подключенных к системе.
Важно: во избежание проблемы n+1, предлагаю сделать один топик, к примеру /system/clock, который бы был retained и общим для всех пользователей.
Клиент должен слушать этот топик и визуализировать время из него.
Важно: нам не нужно транслировать время в реалтайме, ок транслировать обновление раз в 30 секунд.
Нам не нужно делать это время сильно заметным, оно может быть отображено максимально неконтрастно, т.к. для игрока ценности не имеет.
Пример визуализации:

На последнем экране ксатати отсувтует ид сессии.
Часовые пояса
Сейчас у нас запросили часы в локальном часовом времени Болгарии, но в других гео могут потребовать другое время. Мы же на сервере объективно время хотим всегда хранить в GMT-0, во избежание всевозможных проблем.
Фактически у нас часовой пояс должен привязываться к аппарату. Но у нас нет индивидуальных конфигов к аппаратам. Ближайшил уровень где мы можем хранить привязку настроек к оборудованию это уровень лобби. Я предлагаю на уровне лобби указывать часовой пояс. К примеру:
- id: rop_staging
base: https://rop-auth-stage.pages.dev
routes:
action: /api/action
lobby:
main: *rls_landing_lobby
frontend_config:
timezone: UTC+2
У нас уже есть блок frontend_config, данные из которого передаются в сессию на клиент, я предлагаю в него добавить поле timezone, в котором можно было бы указать коррекцию для клиента.
Таким образом мы сможем для разных клиентов согласно лицензии транслировать корректное время согласно требованиям лицензий.