Цель:

Соответствовать требованиям сертификационного органа для получения лицензии в Болгарии.

Требование регулятора:

Во время игры должно быть видно локально время со стороны сервера в локальном Болгарском времени. (то есть региональная лицензия просит отражать время в региональном часовом поясе)

Пример реализации:

У Evolution в рулетке сверху поверх видео транслируется время в студии.

Evolution-Clock-Example-1 Evolution-Clock-Example-2 https://7bitcasino.com/games/evolution/blackjack-vip-44?fullscreen=game

Показывается мое локальное время на устройстве # время в студии. Время в студии обновляется раз в 30 секунд поверх видео.

Реализация

Нам необходимо на сервере реализовать часы, которые мы бы транслировали для всех пользователей подключенных к системе.

Важно: во избежание проблемы n+1, предлагаю сделать один топик, к примеру /system/clock, который бы был retained и общим для всех пользователей.

Клиент должен слушать этот топик и визуализировать время из него.

Важно: нам не нужно транслировать время в реалтайме, ок транслировать обновление раз в 30 секунд.

Нам не нужно делать это время сильно заметным, оно может быть отображено максимально неконтрастно, т.к. для игрока ценности не имеет.

Пример визуализации:

RLS-Add-Clock-Horizontal.pngRLS-Add-Clock-Vertical RLS-Add-Clock-Vertical-device На последнем экране ксатати отсувтует ид сессии.

Часовые пояса

Сейчас у нас запросили часы в локальном часовом времени Болгарии, но в других гео могут потребовать другое время. Мы же на сервере объективно время хотим всегда хранить в 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, в котором можно было бы указать коррекцию для клиента.

Таким образом мы сможем для разных клиентов согласно лицензии транслировать корректное время согласно требованиям лицензий.