Автор (ы) | Джастин Уберти. Питер Тэтчер |
---|---|
Первоначальный выпуск | 2011; 9 лет назад (2011 г.) |
Стабильный выпуск | 1.0 / 4 мая 2018 г.; 2 года назад (2018-05-04) |
Репозиторий | webrtc.googlesource.com |
Написано на | C ++, JavaScript |
Лицензия | Лицензия BSD |
Веб-сайт | webrtc.org |
WebRTC (Web Real-Time Communication ) является бесплатным с открытым исходным кодом проект, который предоставляет веб-браузерам и мобильным приложениям связь в реальном времени (RTC) через простые интерфейсы прикладного программирования (API). Он позволяет аудио- и видеосвязи работать внутри веб-страниц, обеспечивая прямую одноранговую связь, устраняя необходимость установки подключаемых модулей или загрузки собственных приложений. Поддерживается Apple, Google, Microsoft, Mozilla и Opera, WebRTC стандартизируется с помощью Консорциум Всемирной паутины (W3C) и Инженерная группа Интернета (IETF).
Ее миссия состоит в том, чтобы «обеспечить разработку многофункциональных и высококачественных приложений RTC. для браузера, мобильных платформ и устройств IoT и позволяет им всем обмениваться данными через общий набор протоколов ".
В В мае 2010 года Google купила Global IP Solutions или GIPS, компанию по разработке программного обеспечения для VoIP и видеоконференцсвязи, которая разработала множество компонентов, необходимых для RTC, таких как кодеки и эхоподавление. Google предоставил открытый исходный код технологии GIPS и сотрудничал с соответствующими органами по стандартизации на IETF и W3C до e Убедительный отраслевой консенсус. В мае 2011 года Google выпустила проект с открытым исходным кодом для связи в реальном времени через браузер, известный как WebRTC. За этим последовала постоянная работа по стандартизации соответствующих протоколов в IETF и API-интерфейсов браузера в W3C.
В мае 2011 года Ericsson Labs построили первую реализацию WebRTC с использованием модифицированной библиотеки WebKit. В октябре 2011 года W3C опубликовал свой первый черновик спецификации. Основные вехи WebRTC включают первый кроссбраузерный видеозвонок (февраль 2013 г.), первую передачу данных между браузерами (февраль 2014 г.), и по состоянию на июль 2014 г. Google Hangouts был «своего рода» использованием WebRTC.
Проект API W3C был основан на предварительной работе, проделанной в WHATWG. Он назывался ConnectionPeer API, и предварительная реализация концепции была создана в Ericsson Labs. Рабочая группа WebRTC ожидает, что эта спецификация будет значительно развиваться на основе:
В ноябре 2017 года спецификация WebRTC 1.0 перешла из рабочего проекта в статус кандидата в рекомендации.
Основные компоненты WebRTC включают несколько JavaScript API-интерфейсов :
getUserMedia
получает аудио- и видеоматериалы ( например, путем доступа к камере и микрофону устройства).RTCPeerConnection
обеспечивает аудио- и видеосвязь между одноранговыми узлами. Он выполняет обработку сигналов, обработку кодека, одноранговую связь, безопасность и управление полосой пропускания.RTCDataChannel
обеспечивает двунаправленную связь произвольные данные между одноранговыми узлами. Он использует тот же API, что и WebSockets, и имеет очень низкую задержку.. WebRTC API также включает статистическую функцию:
getStats
позволяет веб-приложению получать набор статистических данных. о сессиях WebRTC. Эти статистические данные описаны в отдельном документе W3C.API WebRTC не включает никаких положений для сигнализации, то есть обнаружения одноранговых узлов для подключения и определения способов установления соединений между ними. Приложения используют Interactive Connectivity Establishment для подключений и каким-то образом управляют сеансами, возможно, ретранслируя по любому из протокола инициации сеанса, расширяемого протокола обмена сообщениями и присутствия, очереди сообщений Транспорт телеметрии, Матрица (протокол) или другой протокол. Передача сигналов может зависеть от одного или нескольких серверов.
RFC 7874 требует, чтобы реализации обеспечивали PCMA /PCMU (RFC 3551 ), Телефон Событие как DTMF (RFC 4733 ) и Opus (RFC 6716 ) аудиокодеки как минимум возможности. API-интерфейсы PeerConnection, канала данных и браузера для захвата мультимедиа подробно описаны в W3C.
W3C разрабатывает ORTC (Object Real-Time Communications) для WebRTC.
Хотя изначально WebRTC был разработан для веб-браузеров, в нем есть приложения для небраузерных устройств, включая мобильные платформы и устройства Интернета вещей. Примеры включают в себя телефонию на основе браузера VoIP, также называемую облачными телефонами или веб-телефонами, которые позволяют совершать и принимать звонки из веб-браузера, заменяя требование загрузки и установки программного телефона.
WebRTC поддерживается следующими браузерами:
GStreamer напрямую предоставляет бесплатную реализацию WebRTC
В январе 2015 года TorrentFreak сообщил о серьезном Брешь в безопасности браузеров, поддерживающих WebRTC, в которой говорится, что она поставила под угрозу безопасность туннелей VPN, раскрывая истинный IP-адрес пользователя. IP-адрес Запросы чтения ess не видны в консоли разработчика браузера, и они не блокируются большинством надстроек блокировки рекламы / конфиденциальности / безопасности, позволяющих отслеживать онлайн рекламодателями и другими организациями, несмотря на меры предосторожности (однако надстройка uBlock Origin может решить эту проблему). По состоянию на сентябрь 2019 года этот недостаток WebRTC все еще обнаруживается в Firefox 69.x и по-прежнему по умолчанию предоставляет доступ к внутреннему IP-адресу пользователя в Интернете.