XMPP

[2] Based on XML (Extensible Markup Language), it enables the near-real-time exchange of structured data between two or more network entities.

[3] Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.

Unlike most commercial instant messaging protocols, XMPP is defined in an open standard in the application layer.

Following the initial message delivery, the end clients are in a "chat" and each party is subsequently informed of changes to the other's status.

[5] The XMPP network architecture is reminiscent of the Simple Mail Transfer Protocol (SMTP), a client–server model; clients do not talk directly to one another as it is decentralized - anyone can run a server.

The polling method, now deprecated, essentially implies messages stored on a server-side database are being fetched (and posted) regularly by an XMPP client by way of HTTP 'GET' and 'POST' requests.

The binding method, implemented using Bidirectional-streams Over Synchronous HTTP (BOSH),[10] allows servers to push messages to clients as soon as they are sent.

XMPP applications beyond IM include: chat rooms, network management, content syndication, collaboration tools, file sharing, gaming, remote systems control and monitoring, geolocation, middleware and cloud computing, VoIP, and identity services.

Since XML is text based, normal XMPP has a higher network overhead compared to purely binary solutions.

Therefore, any significant amount of binary data (e.g., file transfers) is best transmitted out-of-band, using in-band messages to coordinate.

In most cases this is dealt with by using an attachment to a message and the widely implemented XEP-0363 HTTP File Upload mechanism.

Using the extension called Jingle, XMPP can provide an open means to support machine-to-machine or peer-to-peer communications across a diverse set of networks.

However, the client proxy model may violate terms of service on the protocol used (although such terms of service are not legally enforceable in several countries) and also requires the user to send their IM username and password to the third-party site that operates the transport (which may raise privacy and security concerns).

Such server-to-server gateways are offered by several enterprise IM software products, including: XMPP is implemented by many clients, servers, and code libraries.

Other clients include: Bombus, ChatSecure, Coccinella, Miranda NG,[19] Pidgin, Psi,[19] Tkabber, Trillian, and Xabber.

Several large public IM services natively use or used XMPP, including LiveJournal's "LJ Talk",[20] Nimbuzz, and HipChat.

XMPP is also used in deployments of non-IM services, including smart grid systems such as demand response applications, message-oriented middleware, and as a replacement for SMS to provide text messaging on many smartphone clients.

Some of the largest messaging providers use, or have been using, various forms of XMPP based protocols in their backend systems without necessarily exposing this fact to their end users.

[26] In February 2010, the social-networking site Facebook opened up its chat feature to third-party applications via XMPP.

[31] XMPP is the de facto standard for private chat in gaming related platforms such as Origin,[32] and PlayStation, as well as the now discontinued Xfire and Raptr.

Jeremie Miller began working on the Jabber technology in 1998 and released the first version of the jabberd server on January 4, 1999.

[35] The early Jabber community focused on open-source software, mainly the jabberd server, but its major outcome proved to be the development of the XMPP protocol.

The following extensions are in especially wide use: XMPP features such as federation across domains, publish/subscribe, authentication and its security even for mobile endpoints are being used to implement the Internet of Things.

Several XMPP extensions are part of the experimental implementation: Efficient XML Interchange (EXI) Format;[46] Sensor Data;[47] Provisioning;[48] Control;[49] Concentrators;[50] Discovery.

[53] The IETF XMPP working group has produced a series of Request for Comments (RFC) documents: The most important and most widely implemented of these specifications are: XMPP has often been regarded as a competitor to SIMPLE, based on Session Initiation Protocol (SIP), as the standard protocol for instant messaging and presence notification.

[citation needed] The XMPP extensions for publish–subscribe[41] provide many of the same features as the Advanced Message Queuing Protocol (AMQP).

A simple XMPP network with the servers jabber.org and draugr.de . Green clients are online, yellow clients are writing each other and small green subclients are the resources of one user. The brown network is not connected to the internet. The server draugr.de is connected to other IM services (ICQ, AIM and other) via XMPP transports .
A standard JID
File transfer options in a chat in Conversations , an XMPP client for Android
Alice sends a message through the XMPP net to the ICQ transport. The message is next routed to Bob via the ICQ network.
Buddy list and a multi-user chat in Spark [ 19 ]
Jabber logo