Log in

No account? Create an account
brad's life [entries|archive|friends|userinfo]
Brad Fitzpatrick

[ website | bradfitz.com ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

DJabberd rules. [Apr. 11th, 2006|11:33 pm]
Brad Fitzpatrick
[Tags|, , ]

DJabberd now does roster/presence stuff kick-ass, except for a few details.

It's now so kick-ass that it gets its own buzzword-compliant website:



Okay, more later.

From: evan
2006-04-12 06:38 am (UTC)
(Reply) (Thread)
[User Picture]From: mart
2006-04-12 07:16 am (UTC)

Hmm. D'you reckon now would be a good time to re-investigate using it for my Jabber integration project at work? We were using Wildfire because DJabberd was still a bit flakey at the time, but the Wildfire integration didn't really get very far before I was shoved onto something else, so I wouldn't be throwing much away to start again with DJabberd at this point…

(Reply) (Thread)
[User Picture]From: brad
2006-04-12 07:22 am (UTC)
You got bitten by lack of SSL which was a one-line fix I missed during some refactoring.

But yeah, you might want to look into it now. A few things aren't there, but it should come together pretty quickly now.
(Reply) (Parent) (Thread)
[User Picture]From: brad
2006-04-12 07:24 am (UTC)
That said, Wildfire is way more mature. If you need to ship something soon that has a high degree of working and can stand working in Java (and Java 1.5, so it won't compile with gcj on Linux.... but maybe runs under ikvm in Mono?), then use it. If you want to hack with me and put up with early-days instability, use DJabberd.
(Reply) (Parent) (Thread)
[User Picture]From: mart
2006-04-12 05:20 pm (UTC)

My main beef with Wildfire is that it has a fancy plugin architecture but you can't actually write a plugin to handle auth, or rosters, or whatever. Instead, you have to essentially add your code to the Wildfire code, which means hacking their build scripts and who knows what else. It is certainly impressive when all you need is a standalone IM service, but I think its extensibility leaves a lot to be desired.

(Reply) (Parent) (Thread)
[User Picture]From: iamo
2006-04-12 02:30 pm (UTC)
Does djabberd do the thing gtalk's servers do where they let you have multiple clients online and route messages to the most recently active within a certain window, or to all clients outside that window? I don't know if that's something inherant in jabber or if it's an innovation of google's, but it's one of my favorite things about their service.
(Reply) (Thread)
[User Picture]From: mart
2006-04-12 05:17 pm (UTC)

That's a standard feature. Each JabberID can have several “resources” (clients, in the IM case) and rules are defined for which one gets any message sent to the general bare JabberID. You can address a specific resource directly if you want, so you can (for example) send a file between yourself on one computer and yourself on another.

I think Google Talk's main innovation is making this invisible to the user. When using “real” Jabber clients I've often bumped into the problem that a particular client will always try to use a particular resource name by default, so if you have to instances of Exodus they'll conflict with one another unless you go in and manually change the resource name. I normally set the resource to something like computername-clientname.

(Reply) (Parent) (Thread)