Он построен на основе XML (Extensible Markup Language) и предлагает функциональность, выходящую за рамки типичного обмена мгновенными сообщениями. Архитектура XMPP похожа на архитектуру электронной почты. Стандарт был популяризирован в 2003 году, с годами он был расширен в плане функций и отвечает за работу таких приложений, как Whatsapp.
Функции
Безопасность и шифрование
XMPP использует такие технологии и криптографические механизмы, как Off-the-record Messaging (OTR) для обеспечения высочайшего уровня безопасности.
Многопользовательский чат
XMPP использует многопользовательский чат (MUC) для поддержки экземпляров с несколькими пользователями.
Одноранговые сеансы
Обмен сообщениями между машинами (peer-to-peer) возможен благодаря использованию расширения под названием Jingle.
Обнаружение служб
XMPP предоставляет услуги локального или удаленного обнаружения, несмотря на существование других протоколов, таких как Service Location Protocol.
Как это работает
Механизм работы XMPP основан на следующих компонентах:
Устойчивые TCP-соединения
TCP-соединения являются постоянными, поэтому нет необходимости создавать соединения каждый раз при отправке сообщений. Однако некоторые новые XMPP-соединения могут использовать веб-сокеты с шифрованием или TLS.
Архитектура клиент-сервер
XMPP взаимодействует путем передачи небольших структурированных пакетов данных между клиентами через серверы-посредники. Каждый пользователь имеет уникальный идентификатор, обычно похожий на электронную почту, используемый для идентификации и маршрутизации.
Децентрализованный хостинг
При использовании XMPP любой может обслуживать и запускать собственные серверы, поскольку он централизован. Его механизм работы похож на механизм работы электронной почты; то есть клиенты обмениваются данными не напрямую, а через серверы в качестве посредников.
Преимущества использования XMPP
- Стабильность и надежность.
- Поддержка нескольких языков, включая Java#, C++, Ruby, Pearl и многие другие.
- С открытым исходным кодом, предоставляет пользователям гибкость в создании любого клиента в соответствии с требованиями.
- Обеспечивает надежную доставку сообщений.