Troca de mensagens entre clientes de uma aplicação.

39 views
Skip to first unread message

leonardo.

unread,
Nov 8, 2009, 7:47:25 PM11/8/09
to pb...@googlegroups.com
Olá pessoal,

Estou desenvolvendo uma aplicação,uma especie de chat,usando jsp e servlets.
Gostaria de saber, se alguem tem alguma ideia ou exemplo de como posso implementar uma troca de mensagens entre os clientes logados nesse chat.
sei que quando uso uma aplicação swing tenho que criar um cliente e um servidor.
porem como a aplicação é toda web creio que a parte do servidor nao é preciso ser feita(não tenho total certeza sobre isso.)gostaria de saber como posso fazer para que um usuario que está on line no chat posso enviar uma mensagem para outro usuario logado..

Seria usando RMI?
Alguem conhece uma API que possa facilitar esse trabalho?

Obrigado!

Erick Moreno

unread,
Nov 8, 2009, 7:55:17 PM11/8/09
to pb...@googlegroups.com
O protocolo xmpp é perfeito pra isso. Em especial, a api smack da Ignite.

http://www.igniterealtime.org/
http://www.igniterealtime.org/projects/smack/index.jsp

Mais informações sobre o XMPP: http://xmpp.org/

[]'s
Erick Moreno

2009/11/8 leonardo. <leonardo...@gmail.com>

Rodrigo Vilar

unread,
Nov 9, 2009, 9:15:43 AM11/9/09
to pb...@googlegroups.com
Como você deve estar rodando do lado cliente, então acho que você deve utilizar algo como:

http://xmpp4js.sourceforge.net/

[]'s
Rodrigo Vilar

2009/11/8 Erick Moreno <erick...@gmail.com>



--
Rodrigo de Almeida Vilar de Miranda
Mestrando em Informática / COPIN / DSC / UFCG
Integrante do projeto OurGrid

Herval Freire

unread,
Nov 9, 2009, 10:17:55 AM11/9/09
to pb...@googlegroups.com
Não sei pq, mas acho que a pergunta não foi taaaao profunda...

Chat em JSP/Servlets? Os clientes vao ser browsers, ou o seu sistema vai ter algum tipo de thick client (e.g. MSN, gtalk, etc)?



2009/11/9 Rodrigo Vilar <rvi...@gmail.com>



--
Herval Freire
http://herval.sollipsis.com

leonardo.

unread,
Nov 9, 2009, 12:07:37 PM11/9/09
to pb...@googlegroups.com
Olá Herval,

Os clientes vao ser Browser!
Alguma ideia?
Estava dando uma olhada no dwr... mas se alguem puder sugerir alguma coisas ou mesmo um exemplo...

Obrigado

2009/11/9 Herval Freire <herval...@gmail.com>

Erick Moreno

unread,
Nov 9, 2009, 12:22:28 PM11/9/09
to pb...@googlegroups.com
Olá Leonardo,

Independente do formato do cliente, pode ser ajax, swing, qq coisa, vc precisa solucionar o problema de enviar mensagens, não é isso?

Para o problema das mensagens, o xmpp é perfeito. Inclusive a api que Rodrigo apresentou implementa o protocolo exatamente para ser chamado por uma aplicação web.

Vc ainda precisa de ideias para solucionar quais partes do seu problema?

[]`s
Erick Moreno


2009/11/9 leonardo. <leonardo...@gmail.com>

leonardo.

unread,
Nov 9, 2009, 12:28:04 PM11/9/09
to pb...@googlegroups.com
Olá Erick,

O unico problema que encontrei na aplicação foi justamente o envio das mensagens.
Dei uma olhada nesse XMPP,porem não encontrei muitos exemplos...
mas mesmo assim obrigado. vou continuar aqui a procura de algum exemplo que me ajude.
se alguem tiver um e quiser compartilhar,eu agradecerei!

Obrigado!

2009/11/9 Erick Moreno <erick...@gmail.com>

leonardo.

unread,
Nov 9, 2009, 12:35:03 PM11/9/09
to pb...@googlegroups.com
Ah Mais uma coisa,
estou usando Jboss,será que não tem nenhum problema usando esse XMPP?

2009/11/9 Erick Moreno <erick...@gmail.com>



--
Leonardo Ribeiro
Desenvolvedor Java - iFactory Solutions
SCJP 1.5

Herval Freire

unread,
Nov 9, 2009, 12:40:33 PM11/9/09
to pb...@googlegroups.com
Erick, XMPP pra gerenciar uma sala de chat via browser não é um overkill muito grande?


Leonardo, GOOG is your friend: http://www.google.com/search?hl=en&safe=off&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=EMt&q=web+chat+java+servlet&aq=f&oq=&aqi=


Até onde sei, basta um registro das mensagens em algum lugar (por exemplo num bd) - daí os clientes pingam a cada X segundos e o q tiver lá é retornado.

2009/11/9 Erick Moreno <erick...@gmail.com>

leonardo.

unread,
Nov 9, 2009, 12:48:12 PM11/9/09
to pb...@googlegroups.com
Olá Herval,

Infelizmente o proxy barrou o link que vc me mandou entao provavelmente verei qndo estiver em casa...
Mas pelo que entendi,sua sugestao é eu criar um tabela que contera todas as mensagens,e enquanto o cliente estiver on line ele verificará o tempo todo se existe uma nova mensagem correto?

Erick Moreno

unread,
Nov 9, 2009, 12:58:02 PM11/9/09
to pb...@googlegroups.com

Mas Herval, a graça de um chat é receber as mensagens de maneira instantânea, esse esquema do BD acaba com isso.

E não acho que o xmpp seja um overkill muito grande, ter tudo implementado bastando apenas fazer chamadas a uma api vale a pena.

[]`s
Erick Moreno

2009/11/9 Herval Freire <herval...@gmail.com>

Erick Moreno

unread,
Nov 9, 2009, 1:06:40 PM11/9/09
to pb...@googlegroups.com
Ia me esquecendo da documentação:

http://www.igniterealtime.org/builds/smack/docs/latest/documentation/overview.html

Uma pergunta, Leonardo, quantos clientes vc espera que esse chat tenha? Eles conversam entre si?

[]`s
Erick Moreno

2009/11/9 Erick Moreno <erick...@gmail.com>

leonardo.

unread,
Nov 9, 2009, 1:07:45 PM11/9/09
to pb...@googlegroups.com
Eu acho que acabaria sobrecarregando o banco de dados,dependendo da quantidade de pessoas que estivessem online...
o XMPP trabalha com qualquer servidor?
ou eu vou ter que implementar um Server XMPP,como faria se estivesse desenvolvendo uma app swing com RMI?

2009/11/9 Erick Moreno <erick...@gmail.com>

leonardo.

unread,
Nov 9, 2009, 1:08:58 PM11/9/09
to pb...@googlegroups.com
Olá Erick,

A ideia é que esse chat seja acessado por uma rede interna.
entao não tenho como dar uma faixa,de usuarios,e os usuarios conversam entre si sim!
é como se fosse um SparkWeb...

2009/11/9 Erick Moreno <erick...@gmail.com>

Erick Moreno

unread,
Nov 9, 2009, 1:11:21 PM11/9/09
to pb...@googlegroups.com
Leonardo, vc pode instalar um servidor xmpp qualquer e implementar o seu cliente web.

A um bom tempo não uso nenhum, mas o OpenFire funcionava muito bem.

http://www.igniterealtime.org/projects/openfire/index.jsp

Rodrigo deve estar mais atualizado do que eu.

Erick Moreno

unread,
Nov 9, 2009, 1:29:04 PM11/9/09
to pb...@googlegroups.com
E dentro do contexto, acabei de ler: http://meiobit.com/meio-bit/web-20/facebook-chat-usar-xmpp

[]`s
Erick Moreno

2009/11/9 Erick Moreno <erick...@gmail.com>
Leonardo, vc pode instalar um servidor xmpp qualquer e implementar o seu cliente web.

Herval Freire

unread,
Nov 9, 2009, 3:40:43 PM11/9/09
to pb...@googlegroups.com
Eu compreendo, Erick... Só to dizendo que acho que a idéia de nosso amigo é bem mais simples. Imagino que ele queira algo como aqueles chats de suporte de site, por exemplo, que (até onde eu sei) não usam xmpp nem nada...



2009/11/9 Erick Moreno <erick...@gmail.com>

leonardo.

unread,
Nov 10, 2009, 7:33:11 AM11/10/09
to pb...@googlegroups.com
isso mesmo Herval!
estou dando uma olhada e vou tentar implementar algo com DWR...
Mas valeu pela ajuda!

quaquer coisa peço socorro :)

2009/11/9 Herval Freire <herval...@gmail.com>

crisnello

unread,
Nov 10, 2009, 8:05:35 AM11/10/09
to PBJug
Leonardo,

Uma maneira de fazer isso é voce criar duas tabelas, uma de usuário,
para controlar o login das pessoas que irão utilizar o chat e uma
tabela de para as messagens, com dois campos que utilizem a tabela de
usuários.

Quem enviou e para quem foi enviado.

Assim...toda mensagem enviada voce salva nesta tabela gravando o envio
da pessoa logada.

Para parecer um chat, voce faz uma tela que fique consultando as
mensagens da pessoa logada a cada 5Segundos.

Posso te passar um exemplo depois. é que agora estou no trabalho.
contato: cris...@gmail.com -> a gente fala no GTALK
Reply all
Reply to author
Forward
0 new messages