IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Server push Comment faire?


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut Server push Comment faire?
    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

    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);
    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 .
    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.

  2. #2
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Je ne peut installer de serveur autre que jonas donc exit les websockets
    Tu ne peux pas passer par un service tiers non plus ?

    J'ai testé pusher.com par exemple, ça marche plutôt bien.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  3. #3
    Membre éclairé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    non pas d'accès à internet pour ce projet. Donc impossible .

  4. #4
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    ok, je suis toujours passé par des services tiers pour faire du push.. je ne pourrait pas t'aider plus, bon courage
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  5. #5
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    hum, en fait, je vois pas trop comment faire du push en http sans passer par du long pooling ou des websocket

  6. #6
    Membre éclairé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    Bah justement , c'est ce que je pensait qu'il était possible de faire avec l'object EventSource introduite en HTML5. D'après ce que j'ai compris, il s'agit de l’implémentation HTML 5 du projet COMET permettant de garder une connexion ouverte entre le serveur et le client sans long polling donc.

Discussions similaires

  1. Réponses: 15
    Dernier message: 09/10/2011, 09h16
  2. [SQL Server 2000] comment faire ?
    Par LeNeutrino dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/12/2006, 22h36
  3. [C#] Comment faire un simple SELECT à SQL Server ?
    Par Rodie dans le forum Accès aux données
    Réponses: 15
    Dernier message: 30/10/2006, 18h04
  4. [Sql server 2005] Comment faire des taches planifiées?
    Par critok dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/05/2006, 12h19
  5. comment faire la connexion (SQLServer) avec server MSDE(LAN)
    Par BRAHIMI MOUSSA dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 12/01/2006, 13h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo