Servidor de Chat Multithread [RESOLVIDO]  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
andreiribas
JavaEvangelist
[Avatar]

Membro desde: 30/04/2006 10:43:13
Mensagens: 478
Localização: Curitiba - PR
Offline

E ae galera
to com uma dúvida:

to fazendo um servidor de chat em java... só que só consegui fazer usando o servidor como um cliente... ex: cliente se conecta com o servidor e eles conversam.

O que eu quero fazer é:
tenho um servidor em Java, e vários clientes. O Server só age passando a mensagem pra todos... ex: o usuário abc enviou uma mensagem, e o Server somente repassa essa mensagem aos outros clientes conectatos... eu teria que usar um MultithreadedServer ou algo assim...
A minha dúvida é:
tenho que guardar uma lista de todos os sockets que estão abertos para enviar mensagens para todos?
Existe algum método melhor de fazer isso?

SCJP 6.0
OCE JSP and Servlet Developer, JEE 6
[MSN]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

O que sugeriu é uma das formar sim. E em cada requisição o cliente envia um identificador para o server saber a origem da sessão.

Mas há maneiras mais simples sim. Aqui duas sugestões de tecnologias boas e bastante fáceis de usar:
http://www.retrogui.com/cgi-bin/wiki_dualrpcserver.pl
http://www.quickserver.org

Former LIPE.
[ICQ]
andreiribas
JavaEvangelist
[Avatar]

Membro desde: 30/04/2006 10:43:13
Mensagens: 478
Localização: Curitiba - PR
Offline

hm valeu pela dica ae LIPE

mas eu tenho que fazer isso sem usar nenhuma biblioteca especial
como assim em cada requisição o cliente envia um id pro server saber a origem?

achei como faz isso usando multicast. mas funciona usando UDP e eu preciso fazer com tcp

SCJP 6.0
OCE JSP and Servlet Developer, JEE 6
[MSN]
andreiribas
JavaEvangelist
[Avatar]

Membro desde: 30/04/2006 10:43:13
Mensagens: 478
Localização: Curitiba - PR
Offline

Consegui resolver esse problema.
Vou postar a solução para que alguém que estiver com a mesma dúvida possa solucioná-la
Eu somente fiz uma lista de sockets, e quando eu recebia alguma mensagem em alguma thread do cliente, eu chamo um método que varre a lista enviando pra todos os sockets.

SCJP 6.0
OCE JSP and Servlet Developer, JEE 6
[MSN]
_rapha_
Debugger

Membro desde: 08/12/2006 16:10:50
Mensagens: 52
Offline

opa andreiribas . vi seu tópico e estou com este problema em um chat que estou montando...

me passa o jeito que você fez pra resolver. Preciso de um método definido no servidor pra mandar mensagem para todos os clientes conectados nele.

estou montando os clientes na forma de applets.

só isso...

valew
paulocesar
Smalltalk

Membro desde: 07/06/2007 22:03:33
Mensagens: 1
Offline

oi! passei pelo forum e axei interessante e logo me registei.
tenho interesse em fazer um chat ou servidor de chat como o chamam.
que preciso para o fazer?
preciso de ajudas::::::::::
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team