Bonjour, j'essaye de mettre en place un système de server push pour mettre à jour l'écran de tout les utilisateurs lors d'une action d'un des utilisateurs et ceux sans avoir à recharger la page ou à faire du long pooling en ajax. Je ne peut installer de serveur autre que jonas donc exit les websockets.
j'arrive jusqu’à présent à contacter une servlet et lui faire renvoyer l'heure comme tout les exemple qu'on trouve sur le net.
Enfin bon renvoyer l'heure toute les secondes ne va pas me servir à grand chose et je ne voit pas la différence avec du long polling.
En fait ma connexion s'ouvre , récupère l'heure et se ferme, et ainsi de suite. Mais aucune connexion ne reste ouverte plus de 1 s ce qui est embetant.
voici mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 $(document)ready(function() { if(!!window.EventSource) { console.log("eventSource supporté"); var source = new EventSource("urlDeMaServlet"); source.addEventListener("message", function(e) { console.log(e.data); }, false); source.addEventListener("open", function(e) { console.log("connexion ouverte"); }, false); source.addEventListener("error", function(e) { if (e.readyState == EventSource.CLOSED) { console.log("connexion fermée"); } else { console.log("erreur"); } },false); } else { console.log("eventSource non supporté"); } });
et voici le code coté server en java
Donc avec le code que j'ai la la connexion se ferme au bout d'1s en erreur après avoir récupéré une fois l'heure .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 response.setContentType("text/event-stream"); response.setCaractereEncoding("UTF-8"); response.setHeader("Cache-control", "no-cache"); printWriter output = response.getWriter(); String data = "retry : 1000\n"; data += "data : Server time " + new Date() + "\n\n"; output.write(data);
Et je ne sais pas comment faire pour garder la connexion ouverte et n'envoyer des données que quand un utilisateur réalise une action sur le site.
Partager