Então… vc tah usando rmi certo?! então vc tem clientes rodando em maquinas separadas do servidor?! quando vc registra o cliente no servidor vc envia ele passando algo como registra(this) certo?? e ai no servidor vc grava tudo numa lista e quando outro eh registrado, vc informa todos clientes?!
tah, assim, pelo que lembro, no rmi, quando vc faz a chamada remota, vai serializar o objeto e vai passar para o servidor, no servidor vai des-serializar, e montar o objeto de novo. Então o que vc vai ter no servidor eh a copia do seu cliente, e naum o mesmo cliente, invocações remotas é passado valor e não a referencia do objeto. Logo, o que vc alterar no cliente da lista no servidor, naum vai alterar no cliente real. O que vc tem que fazer eh transformar cada cliente seu em um “servidor”, e registrar no seu servidor de chat a referencia remota desse seu cliente, cuja interface remota define um método como addChatNick(nome), ai sim, vc ao inves de ter uma lista de clientes, vai ter uma lista de referencias remota de clientes, que permite executar um método addCharNick, e cada vez que um cliente se registrar no servidor, o servidor vai comunicar cada um dos clientes que ele tem gravado na lista de referencia de clientes remotos. Outra alternativa eh fazer o cliente pedir por atualizações periodicamente, tipo a cada 5 min, dessa, não tem comunicação servidor->cliente apenas cliente->servidor e o servidor não precisa informar nada para o cliente caso não seja pedido.
Ou então, eheh eu tava justamente procurando esse topico e ah la, era seu tb heheh vc chegou a ler aquelas coisas que o jairElton falou?! Eu não li os links que ele passou, então não sei certinho como se aplica, mas se vc seguir deve conseguir…
O topico eh este http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=33687&highlight=callback
E no post ele comenta isso:
phiny, pelo que eu entendi, você quer que o servidor envie as mensagens para os clientes automaticamente, para isso você precisará implementar uma estrategia de Callback:
http://java.sun.com/developer/onlineTraining/rmi/RMI.html#RMIClientSideCallbacks
http://www.dca.fee.unicamp.br/cursos/PooJava/objdist/rmicallback.html
Ou simplesmente criar um repositório de mensagens, e os clientes fazerem requisições de tempos em tempos, para atualizar suas mensagens…
[/quote]