up
This commit is contained in:
@@ -7,7 +7,8 @@
|
||||
внешнем дисплее. Аудио, видео, изображения и выбранные музыкальные плейлисты
|
||||
читаются с диска. Пульт переключает показ и управляет воспроизведением локально.
|
||||
После подготовки потеря интернета не мешает локальному показу и таймеру.
|
||||
Полный пульт телефона работает в доверенной локальной сети одновременно с пультом компьютера.
|
||||
Телефон управляет через существующий сервер сайта; приложение экрана получает с сервера
|
||||
обновления состояния. При потере интернета доступен локальный пульт компьютера.
|
||||
|
||||
«Все материалы» в первой версии — все ресурсы, необходимые окну показа:
|
||||
вступление, закрывающее видео, обложка, фон, материалы шагов плана, выбранные
|
||||
@@ -71,23 +72,20 @@ Linux проверяется на обоих указанных дистрибу
|
||||
5. Сервер проверяет право организатора на скачивание материалов. Существующий
|
||||
API используется где достаточно; манифест добавляется минимальным расширением.
|
||||
Токены не записываются в пакет игры и логи.
|
||||
6. После подготовки основной процесс — единственный источник состояния локального показа.
|
||||
Команды пульта компьютера через IPC и телефона через WebSocket обрабатываются
|
||||
последовательно; состояние с возрастающей ревизией рассылается обоим пультам.
|
||||
Серверная синхронизация не задерживает команды. Команды сайта не управляют
|
||||
desktop-показом; возврат интернета не повторяет старые серверные команды.
|
||||
7. Приложение по явному действию оператора раздаёт мобильный Vue-пульт со встроенного
|
||||
HTTP-сервера на выбранном IPv4-интерфейсе. Код сопряжения, подтверждение на
|
||||
компьютере и временная HttpOnly-cookie ограничивают доступ. Сеансы только в памяти;
|
||||
отключение пульта отзывает их. Рабочая сеть — своя Wi-Fi/LAN или точка доступа:
|
||||
HTTP не шифрует трафик. Сертификаты и управление через интернет не входят в MVP.
|
||||
В сетевом API нет произвольного доступа к диску, IPC и токенам сайта.
|
||||
8. Телефон управляет всеми режимами показа, шагами, таймером, музыкой, громкостью
|
||||
и перемоткой. Подготовка игры и дисплея остаётся на компьютере. Команды имеют
|
||||
идентификаторы для дедупликации; после потери связи управление блокируется,
|
||||
показ продолжается. Переподключение получает снимок состояния без повтора команд.
|
||||
Vue-компоненты и типы пультов общие внутри screen, различается транспорт.
|
||||
Общий пакет с сайтом заранее не выделяется.
|
||||
6. После подготовки основной процесс применяет локальные команды пульта компьютера
|
||||
через IPC без ожидания сервера. Материалы воспроизводятся с диска.
|
||||
7. Телефон использует существующий пульт на сайте и отправляет команды серверу.
|
||||
Приложение экрана подключается к серверу как экранная сессия и получает обновления
|
||||
через существующий API CreateScreenSession/GetScreenState. Текущий браузерный
|
||||
экран опрашивает состояние раз в 1000 мс; desktop использует тот же серверный поток.
|
||||
HTTP-сервер, WebSocket-сервер, сопряжение и отдельный мобильный пульт в desktop не нужны.
|
||||
8. Подключение игры, авторизация и получение серверных обновлений реализуются в SCREEN-006.
|
||||
Серверные команды проходят через локальный контроллер и используют подготовленные
|
||||
файлы. Одну версию команды нельзя применять повторно. При потере сети телефон
|
||||
не управляет desktop; уже запущенное воспроизведение и локальный пульт продолжают
|
||||
работать. При восстановлении сети необходимо сверить версии и не повторять
|
||||
устаревшую команду поверх локальных действий; правила согласования проверяются
|
||||
в SCREEN-006 на существующих ScreenState/ScreenCommand.
|
||||
9. Текущие результаты игры загружаются онлайн с отметкой времени; офлайн доступны
|
||||
только последние сохранённые данные с явным предупреждением оператору.
|
||||
Серверная игра, ответы команд и вычисление новых результатов офлайн не работают.
|
||||
@@ -113,15 +111,14 @@ Linux проверяется на обоих указанных дистрибу
|
||||
## Порядок работ
|
||||
|
||||
1. SCREEN-001: проверить Electron на всех шести вариантах, два дисплея, локальное
|
||||
медиа и задержки, техническое подключение телефона по LAN; порог задержки — на M1.
|
||||
медиа и задержки; порог задержки — на M1.
|
||||
2. SCREEN-002: получить полный и защищённый пакет материалов с сервера.
|
||||
3. SCREEN-003: реализовать надёжную загрузку и локальное хранение пакетов.
|
||||
4. SCREEN-004: реализовать локальный проигрыватель и команды, подготовку медиа.
|
||||
5. SCREEN-005: собрать пульт, план показа и режимы экрана.
|
||||
6. SCREEN-009: полный пульт телефона, сопряжение, общее состояние и восстановление связи.
|
||||
7. SCREEN-006: добавить подключение игры и согласование с сервером.
|
||||
8. SCREEN-007: обработать отключение дисплея, звук, сон и восстановление.
|
||||
9. SCREEN-008: собрать артефакты для всех шести вариантов и провести приёмку на площадке.
|
||||
6. SCREEN-006: добавить подключение игры, обновления экрана с сервера и управление с телефона через сайт.
|
||||
7. SCREEN-007: обработать отключение дисплея, звук, сон и восстановление.
|
||||
8. SCREEN-008: собрать артефакты для всех шести вариантов и провести приёмку на площадке.
|
||||
|
||||
После SCREEN-001 — решение о продолжении по результатам всей матрицы платформ.
|
||||
Разработка на одной ОС не заменяет аппаратную проверку остальных ОС и архитектур,
|
||||
@@ -139,7 +136,7 @@ Linux проверяется на обоих указанных дистрибу
|
||||
- В SCREEN-001 для каждой тестовой конфигурации зафиксировать ОС, архитектуру,
|
||||
CPU/RAM, проектор/переходник, аудиовыход, форматы, разрешение и размер медиа.
|
||||
- Полное управление игрой, локальный Go-сервер/БД, редактирование сценария,
|
||||
автообновления и управление desktop через интернет — за пределами MVP.
|
||||
автообновления и прямое управление desktop с телефона по LAN — за пределами MVP.
|
||||
- Подпись и notarization зависят от наличия Apple Developer; без них не обещать
|
||||
установку без предупреждений Gatekeeper. Для Windows отдельно зафиксировать наличие сертификата подписи и
|
||||
возможные предупреждения установки. Учётные данные не хранить в репозитории.
|
||||
|
||||
Reference in New Issue
Block a user