I am writing an internet application that works like an instant messenger. The clients are java apps and the server is a servlet and they are communicating via http. The problem that i am facing is I want when a client sends a message it will be forwarded to the server which will send the message to selected recipients. How do i create a way to identify clients so the server will know who to send the message to? Can this be done? Any help would be appreciated.
From the java application you can use URLConnection class which allows the HTTP functionality...you can use getInputStream and getOutputStream() to pass data between client and server. This allows for lightweight communication between Servlet/Jsp (Web resource) and a Java application. You can maintain the URL which has fields which identify the clients such as userId=client1 where cilent 1 is generated from Server.
Do you require users to authenticate themselves? If so, each connection is associated to one particular user. And since each incoming message is also associated to one particular user, the server should be able to figure out whom to forward it to (since it keeps an internal list of ongoing conversations).
I am using URLConnection to connect to the Servlet and the users are not required to authenticate. But if i give the client a session object can this be used to identify them, i know that is what usually happens when users authenticate.