Files
hockey_new/agent/README.md

85 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hockey vMix Agent 1.3.0
Windows x64 GUI bridge for Hockey Web ↔ vMix.
## Главное в 1.3.0 — стабильность
Эта версия в первую очередь исправляет зависания и случайные отвалы соединения:
- Win32 GUI теперь жёстко закреплён за одним Windows OS-thread (`runtime.LockOSThread`). Окно и message loop всегда работают на том же системном потоке.
- Настройки и Диагностика создаются лениво уже внутри корректного GUI-thread, а не во время первого запуска.
- GUI показывается до запуска сетевых операций; DNS/server/vMix больше не могут задержать появление окна.
- Проверка Windows автозапуска больше не выполняется в startup-critical GUI path.
- WebSocket heartbeat вынесен в отдельный writer-loop.
- Удалён опасный 1.2-секундный read-timeout, который мог срабатывать в середине WebSocket frame и повреждать поток.
- Если сервер не прислал ни одного полного сообщения за 30 секунд, соединение считается stale и создаётся заново.
- Любая запись в WebSocket имеет write-timeout 5 секунд — мёртвый TCP больше не может зависнуть навсегда.
- HTTP Upgrade WebSocket ограничен общим timeout на handshake.
- После нормальной рабочей сессии reconnect снова начинается с 1 секунды, а не со старого накопленного backoff.
- GUI использует собственный кэш состояния и не обращается к сетевому state-lock во время WM_PAINT / WM_CTLCOLORSTATIC.
- Добавлен постоянный `agent.log` рядом с `agent.exe`. Если проблема повторится, даже при недоступном окне можно прислать этот файл.
- `agent.log` автоматически ротируется примерно после 2 MB в `agent.log.1`.
## Обновление
1. Полностью закрой предыдущий Agent через tray → **Выход**.
2. **Не удаляй `agent_config.json`**.
3. Замени `agent.exe` на версию 1.3.0.
4. Запусти Agent.
Device ID, Device Secret и привязка к аккаунту сохраняются.
## Сервер
Текущий локальный вариант:
`http://127.0.0.1:8000`
После переноса Hockey Web на сервер можно указать, например:
`https://hockey.example.ru`
Agent автоматически подключится к:
`wss://hockey.example.ru/ws/hockey-agent`
Приоритет адресов:
1. `HOCKEY_SERVER_URL`;
2. `server_url.txt` рядом с `agent.exe`;
3. основной URL из Настроек;
4. резервный URL из Настроек.
## vMix
По умолчанию:
`http://127.0.0.1:8088/api/`
vMix проверяется независимо от связи с Hockey Server.
## v1.3.0 — vMix inventory / Mapping
Agent автоматически читает XML текущего vMix API и строит инвентарь Inputs и GT-полей.
Структура отправляется Hockey Server только при подключении или когда структура проекта изменилась.
В значения полей Agent не вмешивается. На сервер отправляются только имена Inputs, key/number/type и имена полей.
Fingerprint проекта рассчитывается по структуре Inputs/полей, поэтому смена матча не создаёт новый mapping.
## 1.4.0
- Fast `vmix.batch` protocol for large Mapping updates.
- One WebSocket round-trip per batch instead of one per field.
- Local vMix requests use keep-alive HTTP connections and a bounded parallel worker pool.
- Empty `Value` is forwarded so SetText can clear stale title fields.
- Fully backward compatible server fallback: older Agents continue to work in legacy mode.
## 1.5.0
- Real vMix Overlay 1-4 tally from the local XML API.
- Active overlays are resolved to Input number, GUID/key and title.
- Tally changes are sent to Hockey Server as `vmix.overlay_state`.
- This lets the web UI highlight the actual title currently on air, including titles prepared via `PreviewInput`.