As far as I know there is no standard way to get to this information via Portlet API.
But you can do a GateIn specific hack:
PortletRequest request = myReq;
String remoteIP = ((org.gatein.pc.portlet.impl.jsr168.api.RenderRequestImpl) request).getRealRequest().getRemoteAddr();
Where myReq is any kind of PortletRequest (RenderRequest, ActionRequest, EventRequest, ResourceRequest ...)
As for the design of your application, I'm not sure I get it, but it sounds like you're connecting from your portal application to your client desktops, each of whom is running a browser and another app you need to be in sync with your browser. It sounds bad - your clients should connect to the server and not vice versa (along the lines of server push paradigm - http://en.wikipedia.org/wiki/Push_technology). Also sending a message destined for one, to all of them is bad. You should know the identity of each client app in your portal app, and only send the message to the one app it's destined to.
Thank you Marko. That was exactly what I needed: a GateIn specific hack. As for the architecture, have no fear: it will change. This is a "temporary" transitional workaround until we can fix things the way they are supposed to be.