On being late to the party, or, PubSub, Jabber, and Pain
So recently I’ve decided to get back into Jabber, all that fun stuff. I’ve meddled with it a little before, but not very much. What got me into it was xmpp4moz which I’ve been able to use as a xulrunner extension for the big app I’ve been working on for work purposes. Hey, I thought, it would be great to use as middleware, and easy to apply for any minor instant messaging stuff people want to do.
So far so good, some bumps in the road getting xmpp4moz to work but the main dev there fixed it up real quick and no problems now. So I’m developing a pubsub implementation, on my company’s time but not in billable hours so I can release it for the world to use(it’ll work directly with xmpp4moz which handles the account details on it’s own). So far so good. Reading up on the XEP-0060: Publish-Subscribe. Apparently all this was very big recently, with a PubSub.com search engine and everything that is now defunct. Looks like a lot of steam is gone now. Very few new pubsub news or work. I’m running ejabberd, as it is what I’ve had the most luck with before. This time around, I could care less about transports, I have meebo for all of my IM needs. I’m using Sameplace, Meebo, and Gajim to help with my development right now. By the way, check out Sameplace and all of it’s fun stuff, like travelr and others. Very very nifty. Definately an 7 or 8 on the nifty scale.
Also using some google talk. On the work side, app side, getting ejabberd to work with my authentication scheme was pretty easy. After reading thru the XEP and using Gajim’s XML console, trying to make some default and non-default nodes, nothing but errors. Looking at ejabberd, nothing but cries for help. Apparently ejabberd doesn’t support the full featureset of pubsub. It’s very limited in fact. You can’t even name a node actually. It does instant nodes, but that’s all. Hmm, that could be usable with some outside hacks, but I’d rather avoid that. For my purposes, JAM(jabber as middleware) it would work, but this really has a potential for so much more.
Now tired of working with ejabberd and it’s lacking featureset for my specifici needs, I look at jabberd2. Wait a second, it doesn’t do pubsub either? What? Apparently, only ejabberd natively does pubsub, and not much of it(although again, it could work. I’m not here to diminish what ejabberd CAN do because it works quite beautifully). Ok, so google “jabber pubsub implementation.”
Enter Idavoll.
Apparently there is a XEP-0114: Jabber Component Protocol that Idavoll requrires, and ejabberd supports. Wow! Now we’re talking. So, hmm, light on details in the install. Ok, I installed the requirements, did the python setup.py install
Now what? Ok, mktap and configure it. Ok, it’s still not running. Don’t see anything on running it. Hmm, nothing. Maybe this twisted stuff is where it’s at. Yep, twistd idavoll and you don’t have to configure anything you can pass the configuration variables on the command line. Next step is to set it up under daemontools or something. Setting it up in ejabberd was simple, just follow the instructions for jmc. As it’s a component, just change the names, jmc.host.com becomes pubsub.engram9.com. Comment out mod_pubsub. Restart… Niiice. It works. You can even browse to it now, with Gajim and ejabberd you couldn’t Disco it no matter what you did or tried, even if nodes were in there. Now though, with XMPP4Moz you get a 404. Hmm, probably something in the configuration.
I hope this helps someone, being late to the party sucks, and finding a great protocol that seems to be diminished in reputation because of a now-defunct company is even sadder. But there is new hope, even if it’s with some strange python thing with few instructions if you’re not familiar. I hope this article helps someone, I’ll keep posting new data as I come across it.
Comments
Comment from kael
Time: January 26, 2008, 1:18 pm
This project seems very interesting.
Is there any developement on it ?

Write a comment