tags:

views:

185

answers:

1

With reference to this question, XMPP was mentioned as the open standard for IM interoperability.

For my app the big choice there would be if I use XMPP for internal client-server communication, or develop my own internal protocol but use XMPP on the server to allow communication with other servers, at a later date. My gut feeling is the latter would be easier, but maybe I'm overestimating how much work it would be to take an existing Jabber server or XMPP server libs and build a custom server app?

If my client will always talk to my server, never directly to other servers, is using XMPP sensible or overkill?

Say I want to have my own DB for users, messages, groups, and custom data. What's actually involved getting this set up using XMPP so that I can freely send data to my server, and have my custom server logic handle it? Do any of the libraries out there allow me to run a 'skeleton' XMPP server where I provide my own handlers which are called when messages are received, etc?

I get the overall idea of XMPP but am a bit lost where I'd actually start with it, even to the extent of differentiating between whether I'd need a Jabber server app or one of the open-source server libraries around.

There's also the licensing issue. I certainly don't plan to open-source the main code-base and if I were to use a GPL XMPP solution for client-server communication, my understanding is I'd struggle not to 'taint' my code with GPL.

A: 

If you really want XMPP, Openfire would be one of the easiest to setup http://www.igniterealtime.org/projects/openfire/, I'd also look at BlazeDS if you work with Java for example.

zarko.susnjar
can you qualify "if you really need XMPP"? Are you implying it's not a sensible decision to have XMPP rather than my own protocol, if there's no need for my client to ever talk to another server directly?
John
IMHO XMPP with standalone server is not exactly something I'd use to get and post data between client and server(s). I'm sure it would be much easier to customize, adapt and secure specific setup then pushing text messages to and fro. In Java I'd use BlazeDS or Atmosphere. If you tag your question with technologies you are using, I'm sure there are guys here who could give you usual setup for your case.Example: Flex/Flash+Coldfusion OR Java+BlazeDS would give you opportunity to use AMF protocol,binary,fast and you could send objects instead of wasting time serializing and deserializing them.
zarko.susnjar
So you essentially are recommending a bespoke client-server communication layer, or layers, tailored to each client technology... like sockets or remote objects or AJAx, etc, etc?
John