[JDEV] help, using jabber to transmit custom xml

DJ Adams dj.adams at pobox.com
Fri Oct 12 12:39:27 CDT 2001

On Thu, Oct 11, 2001 at 05:58:54PM -0400, Mike Snitzer wrote:
> All this said, I am extremely new to jabber; and know very little about
> the underlying protocols, extensibility of jabberd via extension messages,
> subscription procedures to get data at cluster to send to both gui at cluster,
> alarm at cluster, and any other clients that I will cook up in the future.  
> So here are some of the questions I have:

Hi, well it all sounds really exciting, and welcome to the Jabber
community! Basically, carrying your data in an extension qualified
by a separate namespace (or namespaces) is exactly the right thing
to do.

I'll attempt to answer some of the questions..

> - If you were tasked with making jabber perform the tasks that I've
> loosely outlined, how would you do it?  

The same way - define an extension by means of a new namespace, and
define what the contents of that extension shoudl look like. *What*
namespace, is a different question (and a bit of a sidetrack) - the
ones beginning jabber: are reserved; but it's certainly possible to
form an 'interest group' to crystallize an 'official' extension - 
see the info on JIGs and JEPs on http://foundation.jabber.org.

> - Exactly what needs to be added to jabberd server to handle the addition
> of jabber:x:cluster and jabber:x:cluster:alarm?

Absolutely nothing. The Jabber server will willingly shunt your custom
(well-defined) XML data here and there. 

> - It would appear that jabber seems to have an extensibility crisis;
> people say that it is possible; the extensibility I need seems to be in 
> Jabber, but there's A LOT that one needs to wade through in order to
> figure out how this might be accomplished.

Well, if you're happy reading Perl, you could look at an implementation
of Jabber-RPC - this is similar to what you want to do - transport
custom data (in this case, XML-RPC payloads) over Jabber. There's always
a decision to be made on what core element you transmit your data with;
you use the <message> example above, which is perfectly fine; 
Jabber-RPC uses the <iq> element as it's more of a request/response kind
of thing. 

Go for it - it's actually very straight forward, and you've come to 
the right place for help.

> - I intend to transmit anywhere from 12MB to 50MB of data an hour, to
> multiple jabber clients, at intervals as quick as every second;
> effectively creating a contiguous stream of data, does jabberd v1.4.X
> allow for such excessive data transmition?  Or will I hit throttling
> heuristics that have been put in place in jabberd?  

These throttling mechanisms are tweakable, so it's pretty much down
to you.

> - I want the data at cluster client to essentially "push" the cluster xml to
> all subscribed clients that have the required subscription presence (I
> think? =) What is the best way to do this?  Start a <stream> and close it
> only when the jabber client exits?

Well, the two things are pretty mutual anyway ;-) On pub/sub there's
some recent movements - check out the news on http://dev.jabber.org

I'll stop there, mostly cos I have to go, but also to give others
the chance to contribute ;-)

hope that helps for a starter-answer


More information about the JDev mailing list