Автор оригинала: Terrell Gentry.
Мой фон
Я являюсь подробным разработчиком и наставником, который кодировал различные приложения в последние годы. В конечном счете, я помогаю компаниям решать проблемы разработки и проектирования для бизнес-критических проектов.
Прошлые клиенты варьировались от опубликовых компаний в маленькие магазины электронной коммерции. Моя страсть – это разработка и дизайн, который приводит к удивителю UX через однозначно фирменный опыт.
Хотя у меня есть разнообразное развитие, помимо некоторого чтения здесь, и там это было мое первое погружение в WEBRTC.
Почему я хотел узнать о сверстниках
После разговора с новой компанией я решил, что это будет веселая идея изучить на технологиях и основных строительных кварталах их обслуживания. Я помню, как слушание сверстника для сверстников и CDN, брошенное вокруг веб-сайта компании, потом, поскольку продолжается что-то очень интересное. Они выгружают большинство пропускной способности потоковой передачи видео для пользователей на веб-сайте, а затем с использованием нескольких CDN для отказа. После копания в своих инструментах разработчика я понял, что весь одноранговый сверстник подключался к разъему через WEBRTC.
Как я подошел к изучению сверстников, чтобы сверстники потокового видео
Я начал изучать WEBRTC через несколько сообщений блога и другой документации Mozilla в протоколе. Следующим шагом было создание некоторых практических примеров, использующих библиотеку более высокого уровня, чтобы лучше понять основы этого протокола. Я закончил использовать библиотеку, называемую PeerJS и смогла создать базовый одноранговой системе обмена сообщениями с моим ноутбуком и рабочим столом, который был подключен к VPN.
После игры с основы я решил продвинуться вперед с инструментами разработки, предоставляемым компанией, которую я смотрел (Streamroot). Через некоторое испытание и ошибка я смог получить потоковую видео на мой ноутбук с другого ПК и их отказоустойчивого CDN.
Проблемы я столкнулся
Самая большая проблема в этом процессе была понять внутреннюю работу МЭБТК под капотом. После прочтения о том, как протокол интерактивного создания подключения (ICE) позволил клиенту WEBRTC к клиенту связи независимо от того, что между ними существуют NAT, я был довольно рад, чтобы узнать больше. Ступени и повороты могут разрешить динамически находить WeBRTC и генерировать кратчайший путь для носителей для перемещения между сверстниками, а также разрешение некоторых неотъемлемых трудностей NAT. На высоком уровне есть 3 типа маршрутов для соединения:
- Прямой одноранговый
- Через использование оглушения (чтобы найти публичный IP-адрес)
- Через использование поворота (для ретрансляции всех носителей через него)
Что такое Shun Server?
Зачастую вы можете использовать протокол под названием Stun (утилиты для обхода сеансов для NAT), что позволяет пользователям определять свой собственный публичный IP-адрес, а также тип NAT. Эта информация используется для создания и установления действительного медиапота. По большей части Shun Servers используются только во время этапа установления медиа-потока.
Как работают Shun Servers?
Shun Servers Проверьте информацию о подключении, такую как IP-адрес и порт, затем отправьте это обратно к исходному свертру. В большинстве случаев это позволяет сверстникам найти свой собственный публичный IP и порт, даже если они отстают от NAT. Использование этой информации позволяет устанавливать прямое управление для соединения между сверстниками для передачи носителя и связи. Хотя это часто охватывает более 90% случаев по числам, на самом деле он действительно зависит от сетевой среды вашей пользователя, так как Stun не может иметь дело с симметричным NAT.
Разница между симметричными и другими настройками NAT – «только внешний хост, который получает пакет от внутреннего хоста, может отправить пакет обратно». Это означало бы, что сверстник будет разрешено общаться только с Shun Server, даже с информацией об общественной связи другой Peer. Это то, где вступает в игру поворотный сервер.
Что такое сервер поворота?
Есть еще иногда очень ограничительные корпоративные сети, где разрешены только определенные порты или коммуникации. Это требует, чтобы клиенты использовали поворот (обход, используя реле вокруг NAT) сервера для ретрансляции медиа-трафика, если подключение не может быть установлено никаким другим способом. Поворотные серверы просто удалите весь одноранговый составный аспект и поток информации от Peer на промежуточный сервер поворота, который затем ретранслярует эту информацию для предполагаемого проезда.
Все это было основополагающимся для понимания комбинированного союзника для Peer и Setup CDN, я изучал. Это часто может иметь смысл упасть на CDN для потоковой передачи видео из-за нестабильных сверстников или на месте по очереди, поскольку пропускная способность CDN должна быть намного дешевле.
Ключевые вынос
Общая выгода WEBRTC предоставляет, представляет собой способность сверстников обнаруживать, подключаться и легко взаимодействовать друг с другом через веб-браузер с помощью JavaScript. Он обычно используется для видео или чата веб-приложений, где основной целью является обеспечение одноранговой связи, но также может быть использована для сосредоточенных сфокусированных на больших контентах, таких как социальные платформы.
Но самая интересная вынос от этого глубокого погружения заключался в том, что он имеет большой смысл иногда разгружать общие серверные ресурсы для клиента. Что еще более удивительно, это вполне возможно расширить теорию и разгрузить определенные операции по вычету и хранению ваших пользователей, а также через очереди сообщений и распределенной обработки.
Советы и советы
Если вам интересно о конкретных типах решений, которые я смотрел, вы можете проверить Peer5 или Streamroot. Эти услуги могут быть интегрированы в различные веб-приложения из социальных платформ для корпоративного видеоконференций. В некоторых случаях эти услуги сохранили до 98% пропускной способности CDN через одноранговую пропускную способность.
Когда дело доходит до изучения серверов ICE и STUN/THUN, я бы порекомендовал прочитать удивительные сообщения в блоге онлайн (HTML5 ROCKS) и с использованием поставщика услуг, который специализируется на хостинге Shun/Enverse Servers, если вы нуждаетесь в них.
Окончательные мысли и следующие шаги
С ростом IOT, VoIP, дополненной реальности и видеозвонков, способы интеграции WEBRTC увеличиваются на день. Согласно сообщению о будущем Insights Insights с 2015 года, ожидается, что рыночная стоимость продуктов WEBRTC достигнет 23 миллиардов долларов на 2025 года. Если вы когда-либо любопытно узнаете больше, не стесняйтесь оставлять комментарий или охватить.
Спасибо, Террелл Джентри