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, wikipedia!
Vou demonstrar como desenvolver este mecanismo de comunicação utilizando JSP e
Javascript.
Nosso exemplo terá três páginas:
- Index.jsp
- Display.jsp
- 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 uma implementação significativa
seria a ida em um banco de dados resgatando os últimos cadastrados, as melhores
ofertas de compra, etc…
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.