Аддоны виджетов
Виджеты — постоянные веб-страницы (алерты, цели, чат-оверлеи). Они не привязаны к очереди триггеров оверлея.
Манифест
| Поле | Значение |
|---|---|
type |
widget |
web |
HTML-файл входа |
web_type |
widget (обязателен) |
web_contents |
Дополнительные ресурсы |
Прямой URL
Всегда доступен при включённом аддоне:
http://localhost:{WEB_SERVER_PORT}/addon_static/{id}/?token={data.token}
Показывается в настройках как URL виджета для OBS Browser Source. Query-параметр token — токен доступа фронтенда аддона.
Статический виджет (без воркера)
Только manifest.json, иконка, HTML и web_contents. Разрешение: WEB_CONTENT.
Полный виджет (с воркером)
Воркер отдаёт HTTP или Socket.IO для live-данных; веб-страница запрашивает /addon/{id}/… или пространство имён Socket.IO.
Защищайте приватные эндпоинты:
if (query.token !== data.token) {
return { error: 'Unauthorized' };
}
Отображение в оболочке оверлея
Конфиг приложения widgets[] для каждого установленного виджета:
| Поле | Назначение |
|---|---|
display.app |
Встраивание в прозрачное окно оверлея приложения |
display.web |
Встраивание в browser source оверлея OBS |
Прямой URL работает независимо от флагов отображения.
Синхронизация в реальном времени: пространство имён Socket.IO /overlay, событие widget:sync с { widgets: [{ widgetId, url }] }.
Снимок: GET /widget/snapshot?display=app|web&token=
UI настроек
Настройки → Виджеты: установка, включение, поля GenerateConfig, флажки отображения, копирование URL виджета.