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.