Veo que nadie te ha respondido aún, por lo que te voy a responder yo, pero mi respuesta no es la mejor, ya te lo digo.
Hace bastante que intenté hacer un chat en WAN y sólo encontré complicaciones. Lo cierto es que si estás pensando hacer un chat de este tipo o algo que se le asemeje, la respuesta no la encontrarás en Java SE (aunque vi una librería que a lo mejor puede servir, era algo de COMM o algo así... que te permite abrir puertos etc.), sino en Java EE a lo mejor, y luego además peticiones con AJAX o algo así por parte del cliente, tendrías que tocar programación para servidores. Sé que se puede hacer a la manera que pretendes, pero entonces tendrás que entrar en el router y mirar el forwarding o algo así, la verdad que no soy preciso porque al final no conseguí llevarlo a WAN. Y si lo consiguieras, sería un coñazo para los users meterse en el router y forwardear un puerto para que le pase la info a tu app. Sé que se puede, yo no lo he conseguido, pero tendrías que mirar muchas más cosas para hacerlo debidamente (PHP o algún lenguaje para el servidor, CREO, y digo CREO porque no lo conseguí, por lo cual te doy la idea que yo tengo del tema, no más, no es la respuesta final).
Canción para meditación:
https://www.youtube.com/watch?v=D023Ir4zWvMEspero que te haya servido de ayuda. Un saludooooo!