7 июля 2019 г. 22:26

382

WebRTC. Что это такое и для чего ?

У нас было 2 часа ночи по Московскому времени, 75 таблеток мескалина , 5 марок мощнейшой кислоты , никакого кокаина , кроме желания разобраться в технологии WebRTC.Не то, чтобы это всё нужно в программировании, но раз начал программировать , то иди в своём увлечении до конца.

Единственное, что меня беспокоило — это мои познания в данной области.В мире нет никого более беспомощного, безответственного и безнравственного, чем человек , который пишет статью про то, в чем понятия не имеет. И я думаю что довольно скоро вы это поймете

Так что же такое WebRTC ? Давайте для начала расшифруем. Web - это понятно. А вот RTC - это Real Time Communication - коммуникации в реальном времени.Проще говоря, это технология , которая предоставляет веб-браузерам и мобильным приложениям связь в реальном времени(RTC). То есть браузеры или мобильные приложения могут захватывать с вашего устройства видео или аудио и передавать между браузерами , без посредников и установки каких-нибудь плагинов

Таким образом , мы можем тупо написать свой Skype, реализовать WhatsApp звонки и другую лабуду

Так допустим вы Боб Марли и у вас есть воображаемая подруга Элис, у которой есть браузер. И она запускает приложение , которое позволяет организовать видеочат с использованием WebRTC. И вы тоже запускаете это приложение на своем браузере и вы хотите установить p2p соединение.Сложность заключается в том , что сначала браузерам нужно обнаружить друг друга. Это же p2p соединение и нам не нужны посредники.А адреса браузеров неизвестны. Как быть ?Тем более Элис не имеет статического IP адреса и расположена она за NAT(А че вы хотели ?)

И тут на помощь к нам приходят братья серверы STUN и TURN

STUN (Session Traversal Utilities for NAT).Боб отправляет запрос STUN серверу, чтобы определить какой внешний адрес он использует. И STUN сервер в ответе отправляет Бобу внешний адрес и порт. Тоже самое проделывает и Элис.

Следующим шагом является шаг обсуждения параметров сессии и установки соединения с другим браузером.

Каждый пир(peer) выясняет свой внешний адрес. Затем создаются каналы

Если два или более пиров подключены к одному и тому же «каналу», пиры получают возможность обмениваться данными и обсуждать информацию о сессии.В целом, инициирующий соединение пир отправляет «предложение», используя протокол сигналирования, такой, как SIP или SDP.

Затем устанавливается активная сетевая сокет-сессия между пирами. Далее, каждый пир создаёт локальные потоки данных и конечные точки каналов данных, и начинается двусторонняя передача мультимедиа-данных с использованием применяемой технологии.

Иногда из-за файерволов и NAT приходится использовать TURN сервер. В этом случае вашим приложениям, не нужно знать о внешном адресе друго приложения, достаточно знать адрес TURN сервера . Тем самым TURN служит ретранслятором, который получает данные от всех участников сети и отправляет всем данные

ICE — это протокол для соединения пиров,

Заключение

В этой вводной статье мы ознакомились с технологией WebRTC и выяснили , как приложения поддерживающие эту технологию устанавливают связь между собой и каким образом обмениваются данным. В следующей статье , я расскажу и опишу , как с помощью WebRTc API захватить видеоданные и передавать между Бобом и Элисом

comments powered by Disqus