XMPP: Extensible Messaging and Presence Protocol
XMPP stands for Extensible Messaging and Presence Protocol. It is a communication protocol, based on Extensible Markup Language (XML), for real-time communication. It supports a wide range of applications including presence, collaboration, instant messaging, multi-party chat etc. It is maintained by XSF, the XMPP Standards Foundation.
- The original open instant messaging technology was Jabber, invented by Jeremie Miller in 1998. Later, Jabber was formalized as the XMPP, an internet standard for messaging and presence, by the IETF.
- Jabber’s version 1.0 was released in May 2000. In the same year, Jabber protocols like XML streaming, messaging, presence etc, were established. In October 2000, jabbered 1.2 was released and the server dialback protocol was introduced to stop address spoofing.
- In August 2001, the Jabber Software Foundation was established to coordinate the open source projects and commercial entities dependent on the Jabber technologies.
- In October 2002, Internet Engineering Steering Group (IESG) approved the formation of the XMPP Working Group. In November, the first meeting of this group was held at IETF 55.
- In 2004, the IETF published the core XMPP specifications: RFC 3920 and RFC 3921. It resulted in widespread adoption of XMPP.
- In August 2005, Google Talk IM and Voice over Internet Protocol (VoIP) service were launched over XMPP. Later, reputed software companies like Apple, Cisco, IBM etc, started using XMPP in their products. For example, in 2010, Facebook introduced XMPP for its chat.
- In 2008, Jabber Inc. was acquired by Cisco Co. Later, in 2011, it was modified by IETF.
- It is free and decentralized which means anyone can set up an XMPP server.
- It is based on open standards.
- It supports multiple implementations of clients and servers.
- It is flexible, XML-based and can be extended. So, suitable for both instant messaging features and custom cloud services.
- Security is supported via SASL and TLS.
- It is efficient, can support million of concurrent users on a single service such as GTalk.
What is XMPP and how does it work?
XMPP is a communications protocol based on Extensible Markup Language (XML). XMPP, which stands for eXtensible Messaging and Presence Protocol, has been standardized in Internet Engineering Task Force (IETF) RFC 6120, RFC 6121 and RFC 7622. The protocol supports multiple communication patterns, including Asynchronous Messaging, Publish/Subscribe and Request/Response.
At its core, XMPP is essentially a streaming protocol that makes it possible to exchange XML fragments between any two network endpoints. Unlike most instant messaging protocols, XMPP is an open standard that allows users to access networks using other protocols.
In addition to providing presence and messaging capabilities, XMPP has also seen use in VoIP, gaming and — most recently — internet of things (IoT) applications. The XMPP Standards Foundation (formerly the Jabber Software Foundation) is helping to develop a new series of extensions that will help sensors and actuators using XMPP to exchange information in real-time.
XMPP was originally called the Jabber protocol, but this was a technical misnomer because Jabber was simply the name of the open source instant messaging app built on XMPP. Today, XMPP is the underlying instant messaging (IM) protocol for WhatsApp Messenger, as well as Google Talk, and has become the official IM standard of the U.S. Department of Defense and many large financial institutions.
When setting up a two-way communication channel, where there is structured data and devices are not memory constrained, use XMPP.
- The core of XMPP is the exchange of small, structured chunks of information(in XML).
- Like HTTP, XMPP is a client-server protocol, but it differs from HTTP by allowing either side to send data to the other asynchronously.
- XMPP connections are long lived, and data is pushed instead of pulled