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 :

[Débutant] Problème lorsque plusieurs clients connectés.


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 10
    Points
    10
    Par défaut [Débutant] Problème lorsque plusieurs clients connectés.
    Bonjour
    J'ai développé une servlet+page HTML qui permet de détecter le changement de l'état d'un éclairage.

    Je vous épargne les détails, mais en gros lorsque la lumière change d'état, le client est au courant.
    Par cela je lance une requête ajax depuis le client qui 'reste' sur le serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while (EtatLampe== EtatLampeOLD) //tant que pas de changement
    	{	
    		try{
    			Thread.sleep(100); 
    			}catch(InterruptedException e){}				
    	}
    EtatLampeOLD= EtatLampe;
    out.println(EtatLampe); // envoie de la reponse au client
    out.flush();
    Une fois la réponse transmise au client une nouvelle requête Ajax est immédiatement renvoyée au serveur.

    Cela marche super bien avec un seul client (et donc une seule requête à la fois), mais quand je connecte deux clients, l'affichage est rafraichit une fois sur deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //Lampe change d'état -> rafraichissement sur client 1
    //Lampe change d'état -> rafraichissement sur client 2
    //Lampe change d'état -> rafraichissement sur client 1
    //Lampe change d'état -> rafraichissement sur client 2
    Moi je voudrais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Lampe change d'état -> rafraichissement sur client 1 et 2
    //Lampe change d'état -> rafraichissement sur client 1 et 2
    Quelqu'un aurait-il une idée.

  2. #2
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    l'affichage est rafraichit une fois sur deux
    Je me demande si ce n'est pas dû à l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EtatLampeOLD= EtatLampe;
    qui se trouve juste après ta boucle dans ta servlet.

    Imagine que
    - le client 1 dorme
    - la lampe change d'état
    - le client 2 se réveille et détecte le changement d'état; il sort de la boucle et exécute EtatLampeOLD= EtatLampe;
    - le client 1 se réveille; il ne détecte évidemment pas le changement d'état (puisque EtatLampeOLD= EtatLampe...)

    Bien évidemment, ce raisonnement n'est valable que si les variables EtatLampeOLD et EtatLampe sont partagées par tes clients...
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

Discussions similaires

  1. [Débutant] Problème encodage coté client et récupération côté serveur
    Par Pataud dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 05/11/2013, 16h50
  2. Réponses: 2
    Dernier message: 12/03/2013, 17h28
  3. [SQL] problème mélange informations plusieurs clients pendant insert
    Par calitom dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/09/2007, 15h44
  4. [débutant]Problème de connection à oracle
    Par benjapar dans le forum Connexions aux bases de données
    Réponses: 12
    Dernier message: 27/09/2006, 16h43
  5. [débutant] Problème de liaison un à plusieurs
    Par Anthony17 dans le forum Access
    Réponses: 7
    Dernier message: 02/05/2006, 14h11

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