WebRTC: контракт подключения клиента
Браузер передаёт медиа по WebRTC с ICE/DTLS/SRTP. Control WSS используется для согласования маршрута, SDP и ICE-кандидатов. Он не заменяет медиасоединение.
Последовательность
- Авторизуйтесь и войдите в конференцию через управляющий протокол.
- Получите доступный маршрут через
webrtc_routes_request/webrtc_routes. - Создайте или выберите media endpoint согласно device lifecycle.
- Согласуйте SDP через
webrtc_offer/webrtc_answer; передавайтеwebrtc_ice_candidateсогласно выбранному маршруту. - Свяжите треки с разрешёнными устройствами и 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. Для настройки сервера — сетевую инструкцию администратора.