Storing public data

In the 1.4.1 release of the Jabber server, the JSM module mod_xml that services the jabber:iq:private namespace has been extended to allow this server-side storage to encompass nonprivate (i.e., publicly accessible) user data. The namespace in this case is, fittingly, not jabber:iq:private. It can be anything you wish, provided that it doesn’t encroach on the standard Jabber namespace names—jabber:* and vcard-temp are not allowed. However, anything else goes. The reason for the vcard-temp namespace name is that there is an emerging but nevertheless not-yet-established standard for vCard data. Until that standard is established, the Jabber server developers have decided to handle this format in a temporary way.

The idea of publicly accessible data is just that; you can make information available to your fellow Jabber users (share URLs, contact lists, and so on). Of course, this sharing is only one way; you write and others can only read. But how do they find out what you’ve made available for them to read? The namespaces of any data stored publicly (i.e., any namespace except for jabber:iq:private) are returned by the Jabber server acting on behalf of the user in response to a jabber:iq:browse request to that user’s JID. That is, the JID without a specified resource; otherwise, it would be passed on by the server to be handled by the client connection with that resource.

Let’s have a look at this in action. We’ll also have a peek at how the storage of the ...

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.