Communications protocol for apps and devices to exchange presence and messages in real-time.
XMPP (Extensible Messaging and Presence Protocol) streams XML (Extensible Markup Language) over a network. It is an open standard published by the IETF.
|XMPP Core||RFC 6120|
|XMPP Messaging and Presence||RFC 6121|
|XMPP Addressing||RFC 6122|
- XML streaming
- Contact Lists / Rosters
- Encryption using TLS (Transport Layer Security)
- Strong authentication using SASL (Simple Authentication and Security Layer)
BOSH – XMPP over HTTP
BOSH (Bidirectional-streams Over Synchronous HTTP) enables XMPP communication over HTTP (Hypertext Transfer Protocol). BOSH supports both “push” and “pull” communications, and enables XMPP for Web applications and for devices on intermittent mobile networks.
BOSH (Bidirectional-streams Over Synchronous HTTP)
|XMPP over BOSH||XEP-0206|
Jingle – XMPP for Multimedia
Jingle is a set of XEPs to support multimedia sessions, including file sharing, streaming, VoIP, and video telephony.
MUC (Multi-User Chat) is a set of XEPs which enable multiple XMPP users to exchange presence and messages in the context of a room or channel.
PubSub enables XMPP users to create and subscribe to pubsub nodes. When information is published to a PubSub node, a notification is sent to every XMPP user that has subscribed to the node. PubSub serves as the foundation for applications that require event notification, including data syndication, geolocation, and rich presence.
|PubSub Collection Nodes||XEP-0248|
XMPP and IoT
XMPP core features such as federation across domains, publish-subscribe, authentication, and security are being extended to implement the Internet of Things.
|EXI (Efficient XML Interchange) Format||XEP-0322|
|IoT Sensor Data||XEP-0323|