bulid 63
This commit is contained in:
76
agent/README.md
Normal file
76
agent/README.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user