Что такое WebRTC

Прочитано: 99 раз(а)


WebRTC (Web Real-Time Communication) — это открытая технология, которая позволяет браузерам и мобильным приложениям обмениваться аудио, видео и данными в реальном времени без установки дополнительных плагинов или сторонних программ.

📦 Из каких основных частей состоит WebRTC?

Технология строится на трех главных кирпичиках (API):

  1. MediaStream ( getUserMedia ): Отвечает за захват потока с вашей камеры и микрофона.

  2. RTCPeerConnection: Самая сложная часть. Управляет подключением к другому пользователю, шифрует данные и следит за качеством связи (кодек и т.д.).

  3. RTCDataChannel: Нужен для передачи любых данных, кроме видео/звука (например, текст чата, файлы или игры).

⚙️ Как это работает под капотом?

Чтобы два браузера нашли друг друга в интернете и начали общаться, происходят два важных этапа:

1. Сигнализация (Signaling)
Прежде чем начать звонок, браузеры должны договориться, как они будут кодировать видео, и сообщить друг другу свои координаты в сети. Процесс обмена этой служебной информацией называется сигнализацией.
Сам WebRTC не умеет рассылать эти приглашения, поэтому для этого используют промежуточный сервер (обычно на WebSocket). Этот сервер просто передает «привет» от вас собеседнику, но не видит содержимое вашего разговора.

2. NAT Traversal (Пробой NAT)
Ваш компьютер обычно находится за роутером, и у него нет своего адреса в интернете. Чтобы пробиться друг к другу, WebRTC использует ICE-фреймворк и два протокола:

STUN: Сервер помогает компьютеру узнать его собственный внешний IP-адрес (подглядеть в зеркало). Обычно этого хватает для прямого соединения.

TURN: Если соединиться напрямую не получается (из-за сложных файерволов), данные начинают идти через промежуточный сервер. Это надежнее, но медленнее и требует мощного сервера.

🚀 Где это применяется и с чего начать?

Где используют: Google Meet, Skype (в браузере), онлайн-доски, игры, стриминг экрана.

Браузеры: Работает в Chrome, Firefox, Safari, Edge. Если пишете код, библиотека adapter.js поможет сгладить разницу между ними.

WebRTC (Web Real-Time Communication) 



Новости партнеров