Архитектура¶
VideoGrace разделен на несколько контуров. Такое разделение делает систему предсказуемой: пользовательский интерфейс, управление, медиа и сервисная автоматизация не смешиваются в один неуправляемый поток.
Контуры системы¶
Клиентский контур: web/PWA, нативные приложения, сервисные клиенты и боты. Клиент отвечает за UI, локальный захват камеры/микрофона/экрана, локальное воспроизведение и взаимодействие с пользователем.
Control plane: защищенное WebSocket/API-соединение с сервером. Через него идут авторизация, состояние конференции, чат, команды управления, права, сигналинг WebRTC, выбор RTC-ноды, push-регистрация и диагностика.
Media plane: передача аудио/видео/экрана через WebRTC к RTC-ноде или через WSM fallback. Внутри серверного контура медиа маршрутизируется как RTP-потоки.
Service plane / CAN: серверная шина для внешних и встроенных сервисов. Сервисы регистрируются на сервере, объявляют роль и capabilities, получают задания и отдают события, статусы и телеметрию.
Почему не browser-to-browser mesh¶
Классическая WebRTC-схема “каждый браузер соединяется с каждым” выглядит привлекательной для 1-to-1, но плохо масштабируется и усложняет эксплуатацию:
- в конференции появляется много направлений связи между участниками;
- NAT, CGNAT, мобильные сети и корпоративные firewall создают нестабильные пары соединений;
- TURN становится не опцией, а центральной частью архитектуры;
- запись, транскрипция, модерация и диагностика требуют отдельного параллельного медиа-пути;
- проблему сложнее объяснить клиенту и сложнее воспроизвести в поддержке.
VideoGrace использует управляемый серверный медиа-путь. Клиенту нужно достучаться до рабочей RTC-ноды, а не до каждого участника. Это проще диагностировать, масштабировать и контролировать.
Сервер как точка контроля¶
Сервер хранит пользователей, конференции, историю, права, настройки, push-подписки и состояние сервисов. Это дает владельцу инсталляции понятную модель эксплуатации: что работает, где находится медиа-путь, какие сервисы подключены и какие задачи выполняются.
Дальше читать¶
- Медиа и устойчивость: как работает WebRTC, RTC-ноды и WSM fallback.
- Сервисы и CAN: какие сервисы подключаются к серверу и зачем нужна CAN-шина.
- Эксплуатация: контроль данных, масштабирование и наблюдаемость.