A generic Instant messaging protcol similar to AOL Instant Messenger. It is
a cross between email, chatrooms and instant messaging. Like Trillian,
some Jabber servers may allow Java programs to send and receive instant messages
from services like AOL Instant Messenger, Yahoo!, ICQ, Napster, Gadu-Gadu and
Zephyr etc. Jabber is not as clever as Trillian. To send a message to someone on
AOL Instant Messenger, Yahoo, ICQ etc. you must have an account on those
services, and you must have an account on a Jabber server with a gateway to one
of those services. Jabber also supports chatrooms. Jabber uses addresses that
confusingly look exactly like email addresses name@website.com, and maintains
public directories of names and addresses. These work faster than email, and
allow for messages to be stored by a server when the receiver is off-line.
Messages are exchanged in fluffy XML. There are many
implementations of Jabber clients and servers. Jabber folk call the buddy list
the roster. The ones of most interest to Java
programmers are those coded in Java with a Java API such as: Java
Jabber OpenIM(client and server, only install documentation and and source
code. No Javadoc, No support for ICQ, AIM, Yahoo Instant Messenger), JSO
(client and server skeleton, geeky documentation is written by academics to
impress rather than inform. It is really a low level toolbox than a product.), Echomine
Muse (client only, good documentation), JabberBeans
(client only), JabberWookie
(client only), Yaja
(client only). For just playing around with the client application, try Rhymbox
or Exodus on
Windows. They is not written in Java. Rhymbox has a nice feature to let you view
the html traffic and to compose XML messages semi-manually for experimenting. Akeni
is both client and server on Windows and Linux (no Java) and supports file
transfer. You can kludge file transfers, doing them with HTTP using Apache WebDav.
At the time of writing there is no Java server. You will have to make do with
something platform specific in the meantime such as JabberD.
may not be able to use a downloadable Jabber client.
A typical XML message sent between client and server looks like this:
<message
to='romeo@example.net'
from='juliet@example.com/balcony'
type='chat'
xml:lang='en'>
<body>Wherefore art thou, Romeo?</body>
</message>