Sistema de mensagem privada num chat

Bom dia, GUJ!

Estou finalizando um trabalho da faculdade, um chat, e nele deve ser implementado um sistema de mensagem privada porém estou em dúvida de como implementá-lo. Como faço para que o usuário receptor, somente ele, visualize a mensagem? Como se encaixaria o padrão observer nesse caso? Gostaria de alguma dica, pois só falta esse bendito detalha para finalizar.

Obrigado.

Para você enviar uma mensagem privada, você tem que selecionar o destinatário e enviar uma mensagem P2P (ponto-a-ponto). Quando envia para todos, usa o método de difusão como ocorre com nosso sinal aberto de TV.

O destinatário ao ser selecionado para o P2P deve ter um ID que o identifique exclusivamente. A partir deste ID você encontra o endereço de rede do destinatário e envia a mensagem para o client dele interceptar.

Ao interceptar a mensagem recebida, o client provoca um método do tipo evento cujo parâmetro é mensagem que você enviou. Exemplo:

public void messageReceived(String message) {
    // Você trata a mensagem recebida aqui
}

wiliamps

Isso vai fazer parte do seu protocolo. Ou seja, insira na sua mensagem a informação de quem é o destinatário e, quando receber a mensagem no destino, analise essa informação e só exiba para ele.

Claro, para isso cada pessoa terá que ter um identificador, como o nome ou um id.

Na minha faculdade fizemos um exemplo de chat com socket, onde a mensagem do clientes são enviadas ao servidor e o servidor redireciona a mensagem ao cliente destino, talvez com RMI também seja possível.

Olá, no site do PrimeFaces tem um exemplo de chat quem sabe não possa lhe ajudar!