Если у вас есть онлайн-звонки или видео-конференции, там под капотом почти всегда живёт один и тот же стек: WebRTC + NAT + STUN/TURN + сервер оркестрации вроде LiveKit.
Коротко по схеме:
1. Клиентам надо найти друг друга напрямую.
2. Сеть часто мешает: NAT прячет устройства за роутером.
3. STUN отвечает на вопрос: «какой у меня внешний адрес и порт?»
4. Если прямое соединение не проходит, TURN становится запасным маршрутом и гонит трафик через себя.
5. Дальше WebRTC уже тащит аудио, видео и данные с низкой задержкой.
Что важно для продукта:
- прямое P2P-соединение дешевле;
- TURN повышает шанс успешного звонка, но дороже по трафику;
- качество UX часто решается не «кодеком», а тем, как выстроены fallback-механики и маршрутизация.
LiveKit здесь обычно закрывает слой инфраструктуры: комнаты, маршрутизацию, сигналинг, подключение участников и управление медиа-потоками. То есть вместо того, чтобы собирать всё вручную, вы берёте готовую основу и фокусируетесь на сценарии продукта.
Если нужно, дальше можно разложить это в таблицу: что делает WebRTC, что делает STUN/TURN, а что берёт на себя LiveKit.
PR Lab
@PRLabPro