Prezados Bom dia,
Possuo o seguinte cenário, Tenho uma aplicação de terceiro que irá enviar uma mensagem de texto via socket para o meu AS, o meu AS deverá receber esta mensagem como HTTP é claro, e reenviar para os clientes esta mensagem.
Pensei em usar o Grizzly para enviar a mensagem via socket para o AS. E pro meu As enviar para os clientes eu pensei no Comet, DWR.
Minha dúvida é como vou fazer esta mensagem sair do servidor do terçeiro via TCP e chegar no meu AS via HTTP.
[quote=lucaslessa]Prezados Bom dia,
Possuo o seguinte cenário, Tenho uma aplicação de terceiro que irá enviar uma mensagem de texto via socket para o meu AS, o meu AS deverá receber esta mensagem como HTTP é claro, e reenviar para os clientes esta mensagem.
Pensei em usar o Grizzly para enviar a mensagem via socket para o AS. E pro meu As enviar para os clientes eu pensei no Comet, DWR.
Minha dúvida é como vou fazer esta mensagem sair do servidor do terçeiro via TCP e chegar no meu AS via HTTP.
[/quote]
Se o cliente manda via TCP, o servidor recebe em TCP. Se um manda HTTP, o outro recebe HTTP. E por aí vai. Não existe essa de mandar de um jeito e receber de outro.
Também, servidor de AS não ouve só HTTP. Tem também EJBs remotos e filas JMS.
Partindo dessa correção, sugiro criar uma aplicação intermediária, fora do conteiner, que faz basicamente isso:
a) ouve o socket TCP
b) reeenvia o pacote para uma fila JMS do servidor de aplicação.
Essa é a parte fácil.
A parte difícil é você transformar o que recebeu na fila em notificações para clientes conectados via HTTP. Obter mensagem da fila não é difícil (pode usar EJB), ruim é mandar pros clientes web (vai precisar usar muito o Google).
Obrigado Leonardo,
A parte do servidor avisar os browsers é tranquila posso uar o DWR Comet que funciona belezinha.
Acho que vou ter mais trabalho nas outras o JMS com EJB.
Abraços