Jabber Identifiers

An entity is anything that can be addressed in Jabber. A server, a component, a user connected with a client—these are all addressable entities. Every entity is identifiable by a Jabber ID, or JID. These JIDs give these entities their addressability. This is what a typical JID looks like:

qmacro@jabber.org/Laptop

This JID represents a user, connected to Jabber on a particular client. We can look at this JID in a more abstract way, by identifying its component parts:

                  username@hostname/resource

The username is separated from the hostname with an @ symbol, and the resource is separated from the hostname with a slash (/).

It’s quite likely that the JIDs you may have encountered so far are those representing users’ connections, such as the qmacro@jabber.org/Laptop example. This is not the only sort of entity that JIDs are used to represent. As a Uniform Resource Locator (URL) is fundamental to the HyperText Transport Protocol (HTTP), so a JID is fundamental in Jabber. JIDs are used to represent not only users connected to Jabber via their clients, but also every single entity in the Jabber universe that is to be addressed—in other words, that is to be the potential recipient of a message. Before looking at the restrictions that govern how a JID might be constructed (these restrictions are described in Section 5.1.1), let’s first look at some examples in which a JID is employed to give entities their addressability:

A Jabber server

A Jabber server is identified ...

Get Programming Jabber now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.