WebRTC – стандарт, позволяющий организоваться передачу аудио, видео и данных от браузера к браузеру в режиме реального времени.
По сути, WebRTC представляет собой набор API JavaScript, при помощи которых можно получить доступ к различным медиа устройствам (микрофон, камера) и организовать передачу данных удаленному клиенту по технологии Р2Р.
Для установления сессии между двумя клиентами, посредством WebRTC используется сервер сигнализации (SIP, XMPP), взаимодействие с сигнальным сервером, ввиду их вариативности остается на усмотрение разработчика, но зачастую используется Web Socket (WS) или защищенный Web Socket (WSS). На данный момент поддержка WebRTC интегрирована в браузеры Mozilla Firefox и Google Chrome, в последних версиях браузеров сайтам не может быть предоставлен доступ к медиа-устройствам, если взаимодействие с ним производится не по защищенному каналу HTTPS, что в свою очередь исключает возможность использовать незащищенный Web Socket (WS). После установления сессии, обмен медиа-данными браузеры осуществляют напрямую.
В общих чертах схема взаимодействия WebRTC приложений выглядит вот так: