Skip to content

WebRTC: контракт подключения клиента

Браузер передаёт медиа по WebRTC с ICE/DTLS/SRTP. Control WSS используется для согласования маршрута, SDP и ICE-кандидатов. Он не заменяет медиасоединение.

Последовательность

  1. Авторизуйтесь и войдите в конференцию через управляющий протокол.
  2. Получите доступный маршрут через webrtc_routes_request / webrtc_routes.
  3. Создайте или выберите media endpoint согласно device lifecycle.
  4. Согласуйте SDP через webrtc_offer / webrtc_answer; передавайте webrtc_ice_candidate согласно выбранному маршруту.
  5. Свяжите треки с разрешёнными устройствами и SSRC, обрабатывайте отключение и изменения прав.

Точные поля и примеры JSON находятся в справочнике команд. Не выводите идентичность потока только из порядка треков или имени пользователя: у одного аккаунта могут быть несколько подключений и устройств.

Publish и receive

Для публикации нужно согласовать создание устройства и получить разрешение на захват в браузере. Для приёма нужна подписка на разрешённый endpoint. Не создавайте новую управляющую сессию для каждой камеры.

Публикация локального видео не доказывает, что другой участник его получает; проверяйте оба направления отдельно. Видимый VAD не доказывает успешного воспроизведения удалённого аудио.

Кодеки и сеть

Не фиксируйте динамический RTP payload type в коде клиента: он определяется SDP. Учитывайте согласованные профиль/уровень H.264 и направления кодеков. Подробный контракт совместимости: Video flow.

Проверьте UDP-диапазоны, NAT и достижимость advertise address. Успешный HTTPS не подтверждает доступность WebRTC. Если используется WSMedia fallback, следуйте его формату и правилам мультиплексирования, а не передавайте RTP как произвольный JSON.

Переподключение

Согласуйте актуальные устройства и подписки после восстановления control-сессии. Закрывайте устаревшие соединения и игнорируйте события уже заменённой сессии. Сохраняйте пользовательское намерение включить/выключить микрофон и камеру, но не обходите новые серверные ограничения.

Для собственного клиента используйте чек-лист, Audio flow и Video flow. Для настройки сервера — сетевую инструкцию администратора.