Chat (bate-papo) avançado

Boa noite!

Eu gostaria de retirar algumas dúvidas com vocês em relação à um projeto que desejo fazer.

Estou cursando Sistemas de Informação, em meu 3° semestre. Relacionado à programação, eu já conclui disciplinas como Programação I e II, Laboratório I e II e estou cursando Estruturas Avançadas de Dados I.

Como estruturas de dados já estudadas por mim durante o curso, posso citar: arrays, listas, pilhas, filas, leques e árvores.

Dito isto, para vocês terem noção ao me ajudar, agora sobre o projeto:

Desejo criar um chat, bate-papo, mais avançado digamos assim, com bons recursos. Pretendo utilizá-lo via browser e pensei em fazê-lo através da linguagem Java, para web.

Tentarei passar o modo como gostaria do chat:

  • Terá uma lista, com os usuários online.
  • Um usuário qualquer, para conversar com outro, escolherá este na lista.
  • As janelas de chat poderão ser avulsas (um conversa com um) ou em grupo (mais de dois conversando)

Dito isto já consegue-se ter uma noção do que eu estou desejando realizar.

Peço agora, que os caros amigos do fórum me indiquem a melhor maneira de realizar tal projeto, ou seja:

  • Java web é adequado para este chat?
  • O que necessito estudar para criá-lo?
  • Vocês possuem algum link que demonstre algo parecido? (Procurei e encontrei apenas chat’s comuns e a maioria no estilo ‘um fala com todos’).

Lembrando que, não quero o link para copiar. Quero para ter noções de como realizar algo deste porte, pois realmente não sei a maneira correta de fazê-lo, e desejo criar com as próprias mãos (ou pontas dos dedos :P).

No aguardo, valeu!

Isso é somente para estudo e quer fazer do zero? Caso não, pode utilizar o primefaces que tem um recurso quase que completo pra sua necessidade:

http://www.primefaces.org/showcase/push/chat.jsf

Boa tarde Marcelo!

Obrigado pela colaboração.

Bom, eu gostaria claro de realizar do zero para aprendizado, porém talvez não acabe sendo apenas para objeto de estudo. Tenho em mente um projeto que desejo MUITO criar, e nele entraria este chat.
Porém, nada é certo ainda em relação ao projeto.

Enfim, eu gostaria de entender bem como funciona e realizar mesmo.

Eu vi o link que me indicou, é realmente o mais próximo do que estou querendo:

Possui uma lista com os usuários, podendo escolher um para conversar…

Porém, não entendi muito bem o código… são apenas os arquivos chat.xhtml(que não conheço e entendo) e ChatView.java?

Eu li um pouco sobre sockets e threads, assuntos abordados em alguns tópicos que verifiquei pela web… porém em exemplos de chat, realmente os que vi não se encaixam com o que preciso…

Vou ficar no aguardo da ajuda dos amigos do fórum e tentarei ler mais sobre sockets e threads.

Estou no aguardo da ajuda do pessoal…

Quero acrescentar também que: as mensagens do chat serão entregues em tempo real, e não o chat ser atualizado a cada período de tempo.

Aguardando, valeu!