jabberlib - Processing XMPP library

A library by Gerald Kogler for the programming environment processing. Last update, 10 Aug 2011.

jabberlib is a Processing library that encapsulates the SMACK API, an "Open Source XMPP (Jabber) client library for instant messaging and presence".

It forms part of the Time Inventors' Kabinet (TIK). TIK is an art project interested into ecology and media art, a collaborative experiment with time. jabberlib is based on SMACK 3.2.1 as our TAK server relies on the XMPP pubsub service.

More information on SMACK is provided on the documentation pages and as Javadoc.

Download

Download jabberlib version 0.2.2 in .zip format.

Installation

Unzip and put the extracted jabberlib folder into the libraries folder of your processing sketches. Reference and examples are included jabberlib folder.

Keywords: jabber, XMPP, smack, gtalk

Reference: Have a look at the javadoc reference here. A copy of the reference is included in the .zip as well.

Source: The source jabberlib is available at http://code.okno.be/, and its repository can be browsed here.

Thanks to: SMACK, Eclipse Library Template

Examples

Find a list of examples in the current distribution or have a look at them by following the links below.

  • jabberlibIM: shows how to talk to XMPP instant messaging server.
  • jabberlibGtalk: shows how to talk to gtalk XMPP server.
  • jabberlibPubsub: shows how to communicate with XMPP pubsub server.
  • jabberlibTIK2OSC: shows how to communicate with TIK XMPP pubsub server providing OSC server to other TIK clients.

Tested

Platform Ubuntu 10.10
Processing 1.5
Dependencies Smack API 3.2.1 (included)

Debug

To enable debugging of traffic between your client and the XMPP server the library includes smacks-debug.jar. To debug your example, export your sketch as Application and change the last line of the startup script to something like that:

java -Djava.library.path="$APPDIR" -cp "$APPDIR/lib/jabberlibPubsub.jar:$APPDIR/lib/core.jar" -Dsmack.debugEnabled=true jabberlibPubsub

This will give you a nice interface and show the XML messages you're sending and receiving.

Todo

Feel free to ask for features of the next version of jabberlib. Changes planed:

  • - Create class JabberUser providing properties like JID, name, type and status.
  • - Method getUsers() has to return array of JabberUser[] instead of Object[].
  • - Provide better documentation and javadocs.