WebRTC (Web Real Time Communications) — стандарт описывающий передачу потоковых аудиоданных, видеоданных и контента от браузера и к браузеру в режиме реального времени без установки плагинов или других возможных расширений. Стандарт позволяет превращать браузер в терминал видео-связи, быстро и просто открыть веб-страницу, и немедленно начать общение.
Когда Джереми Миллер изобрел технологии Jabber / XMPP в 1998 году, он сделал это в значительной степени, чтобы предоставить бесплатную и открытую альтернативу проприетарным службам мгновенного обмена сообщениями того времени, таким как AOL Instant Messenger и ICQ. Хотя названия таких сервисов изменились, сегодня XMPP по-прежнему представляет собой бесплатный и открытый стандарт для создания и развертывания систем обмена мгновенными сообщениями и связанных приложений.
Все существующие XMPP-серверы, клиенты и библиотеки программирования поддерживают ключевые функции системы обмена мгновенными сообщениями, такие как индивидуальный и многосторонний обмен сообщениями, подписки и уведомления о присутствии, а также списки контактов. Это богатство кода позволяет разработчикам легко создавать новые приложения безопасным и масштабируемым способом.
Поскольку ожидания пользователей от приложений для обмена сообщениями со временем меняются, сообщество XMPP всегда работает над определением и реализацией расширений XMPP для новых функций. Если пять или десять лет назад такие функции включали уведомления о состоянии чата и HTML-сообщения, теперь они включают такие вещи как push-уведомления, архивы сообщений и улучшенную поддержку нескольких устройств.
Проекты, использующие обмен мгновенными сообщениями на основе XMPP: WhatsApp, Zoom, Grindr, Jitsi …
WebRTC и XMPP. Прекрасное сочетание технологий.
WebRTC - это бесплатный открытый проект, который предоставляет браузерам и мобильным приложениям возможности связи в реальном времени.
Jingle, фреймворк XMPP для установления сеансов p2p, прекрасно сочетается с WebRTC.
XMPP особенно хорошо сочетается с WebRTC в настройках, где есть желание соединить аудио / видеозвонки WebRTC с текстовым чатом, но преимущества XMPP
Поскольку WebRTC - это одноранговый протокол, многопользовательский интерфейс становится экспоненциально сложным. Сопряжение службы WebRTC с XMPP позволяет разработчикам значительно снизить эту сложность.
Проекты, использующие WebRTC с XMPP
Jitsi видеомост использует Colibri XEP для управления соединениями и конференц - смешивание.
Jitsi Meet - это веб-приложение для мгновенной видеоконференцсвязи с открытым исходным кодом, использующее XMPP.
Объединяя видеомост Jitsi и Jitsi Meet в один пакет, Openfire Meetings упрощает развертывание и использование видеоконференций WebRTC.
Otalk - это платформа с открытым исходным кодом для создания приложений в реальном времени с использованием XMPP. Talky - это пример приложения, созданного с использованием этих библиотек.
Больше о протоколе XMPP и его перспективах можно прочитать в обзоре: XMPP. Открытый протокол обмена сообщениями.
Напоследок полезный гайд из интернета. Как предотвратить утечку IP-адреса и защитить свои данные читаем в обзоре: Каким образом утечка через WebRTC ставит под угрозу мою конфиденциальность?