Server-Sent Events na gsp
08/10/2014 16:53
0
As gsp aceita o Server-Sent Events que é uma técnica do HTML5?
Estou tentando implementar essa funcionalidade no grails que vi no artigo da revista JavaMagazine edicao 131 que fala de java notifications aqui esta o codigo.
atendimento.gsp

<%String urlNotificationAtendimento = createLink(controller: "Atendimento_ti", action: "avaliacaoPendente");
%>
<button onclick="start()">iniciar server push</button>
<script>
function start(){
var eventSource = new EventSource("${urlNotificationAtendimento}");
eventSource.onmessage = function(event){
alert(event.data);
}
}

</script>

Atendimento_tiController.groovy
def avaliacaoPendente(){
response.setContentType("text/event-steam");
response.setCharacterEncoding("UTF-8");

PrintWriter writer = response.getWriter();

for (int i = 0; i < 10; i++) {

writer.write("data:"+System.currentTimeMillis()+"\n\n");
try {
Thread.sleep(10000);
}catch (InterruptedException e){
e.printStackTrace();
}
}
writer.close();
}

Ele chega no Controller executa toda a função avaliacaoPendente mas no retorno o firebug do firefox informa que não conseguiu estabelecer conexão.
Desde já Obrigado.
Tags: gsp


0
Resposta:
index.gsp

String urlEvent = createLink(controller: "EventPush", action: "doGet");
<br>
<button onclick="start()">Iniciar Push</button>
<script>
function start(){
var eventSource = new EventSource("${urlEvent}");
eventSource.onmessage = function(event){
alert(event.data);
};
}
</script>

EventPushController.groovy
def doGet() throws ServletException,IOException{
response.setContentType("text/event-stream");
response.setCharacterEncoding("UTF-8");

PrintWriter writer = response.getWriter();
MyNegocioCRUDRetorno oRetorno = new MyNegocioCRUDRetorno(data: []);
Long nUserId = Long.valueOf(session[Aplicacao.sessionId]);

oRetorno.data = Atendimento_ti.findAll(" FROM Atendimento ate where ate.requisitante = "+ nUserId
+ " AND ate.situacao =" +2+
" AND ate.avaliacao ="+0
+ " ORDER BY ate.abertura DESC",[max: 5]);


if(oRetorno.data.size != 0) {

String mensagem = "Atendimento sem avaliação";
writer.write("data:" + mensagem + "\n\n");

}

writer.close();
}
17/10/2014 16:46



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto