Как браузер знает, что ему нужно подключиться к серверу stun / turn? - PullRequest
0 голосов
/ 19 февраля 2020

Например, я хочу поделиться медиа-трафиком c с WEBRtc. Очевидно, если я хочу go через NAT. Мне нужно использовать STUN/TURN сервер. И когда WEBRtc начинает делиться ICE кандидатами - откуда браузер знает, что сервер STUN/TURN существует, и он должен go там первым?

Спасибо.

1 Ответ

0 голосов
/ 19 февраля 2020

WebRT C в Браузере начинает анализировать состояние сетевого подключения (фактически стандарт не указывает, когда это делать, и для многих браузеров WebRT C начинает изучать сеть сразу после создания соответствующие объекты, чтобы не создавать лишних задержек при подключении). Когда разработчик на первых этапах создавал объекты WebRT C, он должен как минимум передать адрес сервера STUN. Это сервер, который в ответ на пакет UDP «что такое мой IP» передает IP-адрес, с которого был получен этот пакет. WebRT C использует сервер STUN для получения «внешнего» IP-адреса, сравните его с «внутренним» и посмотрите, есть ли NAT. И если да, то какие обратные порты использует NAT для маршрутизации пакетов UDP?

Время от времени WebRT C в браузере будет вызывать обратный вызов onicecandidate, передавая пакет SIP с информацией для второго участник соединения. Этот пакет содержит информацию о внутренних и внешних IP-адресах, попытках подключения, портах, используемых NAT, и так далее. Разработчик использует сигнализацию для передачи этих пакетов между браузерами. Переданный пакет отправляется в WebRT C с использованием метода addIceCandidate(). Через некоторое время WebRT C установит sh одноранговое соединение. Или не сможет, если NAT будет мешать. В таких случаях разработчик может передать адрес сервера TURN, который будет использоваться в качестве внешнего связующего элемента: оба браузера будут передавать через него пакеты UDP с голосом или видео.

Передача конфигурации серверов STUN / TURN при первоначальном создании RTCPeerConnection.

...