tags:

views:

433

answers:

2

I want to try developing an XMPP server component using XEP-0114: Jabber Component Protocol.

Which server do you recommend and why? I'm talking about ease of development, community support, documentation, examples, etc.

+1  A: 

That's a hard question to answer, because I doubt there are many developers involved in developing across multiple XMPP projects and languages.

I can throw out a few personal perceptions but... I could be off-base!

What you're really looking for is which libraries would be recommended for component development. All the servers support the component protocol, so all you really need is a socket connection to the server and some helper routines to make the repetitive stuff like message parsing easier.

Where the server might matter is if you need tighter integration.

For example if you want your component to scale the same way as Ejabberd then you'll probably want to use exmpp.

If you need to deploy your component alongside Openfire into Java only enterprises, then you'll probably want to use smack.

If you are familiar with Python and want to prototype quickly use Wokkel.

I don't think documentation is going to be great for any of the libraries (haven't looked at them all though!) but that shouldn't be a huge burden. All you really need a good book on how the XMPP protocol works and then some sample code from the library and it's fairly easy to move on from there.

Van Gale
Ok, after researching a little, I understand that the language of the component doesn't need to be the same language of the server, since they interact via TCP (not some kind of shared lib). But still, there are some frameworks that help developing these components. For example, you suggested smack but this thread(http://www.igniterealtime.org/community/thread/9027) left me with some doubts.
alves
A: 

For an easy-to-use testing server I like openfire. Good instructions, easy to hook in components, and a good web interface for administration. Debugging is more of a "tail -f" on the logfiles, slightly java-ish.

I've used XCP professionally, but that's really for commercial use. It works well but if that's not your target deployment it's not worth the effort. I'm not sure if you can buy it separately any more.

I tried using ejabberd and I gave up quickly. I found the documentation for setup and administration awful. The config files are not self describing and there's no good walk through on the ejabberd site. It may be able to even fry my eggs in the morning for breakfast, but I couldn't get past install with the time I'd allotted to it.

A. R. Diederich