Take the 2-minute tour ×

If creating an IM platform in Java, which would be a better way to implement communications between the clients and server? I was thinking either RMI or just a socket connection...

Advice please,


share|improve this question
add comment

3 Answers

up vote 7 down vote accepted

I would use straight socket connection, using a well known protocol such as XMPP. You can use a library (like smack) to avoid implementing the whole protocol yourself.

The main advantage of XMPP over RMI or your self-made protocol is that is a well established protocol used for exactly that purpose: IM.

Some chat services already using XMPP include Google Chat (GTALK) and Facebook.

share|improve this answer
add comment

I already did this using Smack API, using XMPP protocol.

share|improve this answer
Related: stackoverflow.com/questions/177514/… –  Topera Aug 12 '10 at 19:26
add comment

CometD has been specifically designed for use cases such as Chatrooms. Differently from other protocols, it works over HTTP port 80, which means (nearly) no hassles with Firewalls.

Listen to a recent podcast with Greg Wilkins about the project, which goes into some details of issues with implementing Chatrooms and how it gets handled by CometD.

I believe there is a Java client for CometD if you need to have client on both sides of conversation (normally frontend is JavaScript).

share|improve this answer
add comment

Your Answer


