What is XMPP?
XMPP (Extensible Messaging and Presence Protocol) is an open standard communication protocol for message-oriented middleware based on XML. It enables the near-real-time exchange of structured yet extensible data between any two or more network entities.
Originally named Jabber, XMPP provides features for presence, messaging, and network availability. Some key capabilities include:
- Instant messaging with one-to-one chat and group chat
- Presence information to notify availability status
- Contact list management and synchronization
- Extensibility to add new features
XMPP runs over TCP and uses XML streams over long-lived TCP connections for persistent communication. This allows servers and clients to send XMPP XML stanzas asynchronously for low-latency communication. The protocol is decentralized by design so anyone can run their own XMPP server.
Key applications include instant messaging, multi-party chat, voice and video calls, collaboration tools, content syndication, gaming, IoT messaging, and cloud computing. Popular implementations include the open source servers Openfire and ejabberd.
WhatsApp, Facebook Messenger, Matrix.org, Quicksy, Adium, Bitmessage, ChatSecure, Conversations, Gajim, Tempo - TimeGuard Messenger, Psyced are some alternatives to XMPP.