javaxmppchatsmackmsn

Integrate IM/chatting functionality in my Java application


I am interested in putting a chatting functionality as part of an application.
What I am interested in:

  1. I would like to keep my application instances acting as peers, i.e. I would prefer not to write also some server module to handle message communications
  2. I would like it to be able to use it with exising IM accounts. E.g. someone can use it using his MSN account or any other client account he may have, same way he would use MSN Messenger or Tor client etc

I googled and found that there are some Java MSN libraries available and also some other libraries that support IM e.g. SMACK for JABBER etc (not sure what that is) but I am not sure if the latter could be used for option 2 I mention.
My preference on 2 is because I assume that this way a user could do chat no matter where he is while in other solution I assume that some network infrastructure e.g. with routable IPs etc would be required. Am I wrong here?
Does anyone have expererience with Java IM libraries? Are for example any issues e.g. with different MSN versions or something?(Don't know if the protocol has been changing often to matter for me).
What would be the best path/option for my requirements?


Solution

  • I would go with a Jabber based approach. Jabber (also called XMPP) is an open protocol with lots of implementations and supports connecting to other IM services via transports. That way you would not have to deal with changes to the Windows Live protocols. You can rely on the open source community to provide that functionality for you.

    Edit: It seems, that Windows Live even allows native XMPP access.

    If you like, you can always set up your own Jabber server to provide a tighter integration with existing user accounts. In that case you wouldn't need to write the whole server.