13/01/2010 Development / java script

Resumidamente o conceito de ServerPush é: Abrir um canal de comunicação http e ficar recebendo os dados da aplicação sem efetuar posts. Essa tecnologia foi introduzida em 1996 por PointCast e Marimba e em 1997 Microsoft e NetScape aplicaram esse canal dentro de seus Browsers. Para mais detalhes http://en.wikipedia.org/wiki/Push_technology#HTTP_server_push

Vou demonstrar como desenvolver este mecanismo de comunicação utilizando JSP e Javascript.

Nosso exemplo terá 3 páginas:

  1. Index.jsp
  2. Display.jsp
  3. Streamer.jsp

Index.jsp
Nessa página criaremos os frames [display.jsp e streamer.jsp] e os tratamentos javascript para as mensagens que chegarão.

A página display.jsp vai conter nossos objetos que serão atualizados. Ex: Grids, Divs, Tabelas, ou pode ser também uma página em branco, se for apenas printar a mensagem recebida.

A página Streamer.jsp irá conter a regra de negócio. O grande lance aqui é a possibilidade de utilizar a "Thread.sleep" do Jsp...Nesse exemplo estamos apenas printando de tempo em tempo um contador, mas um implementação siginificativa seria a ida em um banco de dados resgatando os últimos cadastrados, as melhores ofertas de compra, etc...

Finalizando:

Quando a aplicação estiver rodando, o streamer.jsp enviará o conteúdo para a função push localizada no Index.jsp.

O push pegará o conteúdo e jogará no frame "display". Podemos também acessar através do button que chamará a função SendEvent que enviará para o tratarMensagemPublicada a mensagem digitada no input. Nesse caso o tratarMensagemPublicada fará um Split na mensagem e de acordo com as condições encaminhará a mensagem para os devidos métodos.

Faça o download do Exemplo