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

Langage PHP Discussion :

comment savoir si un client déjà connecté envoi un nouveau message (liaison par soocket)


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    496
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 496
    Points : 123
    Points
    123
    Par défaut comment savoir si un client déjà connecté envoi un nouveau message (liaison par soocket)
    j'ai réalisé un serveur socket en php.
    avec socket_select je sais si un nouveau client se connecte, et j'enregistre le socket de communication créé par la fonction socket_accept dans un tableau clients
    j'ai plusieurs client de connecté , enregistré dans ce tableau clients.
    comment savoir si un client déjà connecté envoi un nouveau message, sans avoir à faire une boucle qui vérifie pour chaque clients connecté qu'ils ont envoyé ou pas des données?

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    quand un client envoie un message vous pouvez stocker l'information dans un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $messageEnvoye["client22"] = TRUE;
    et ensuite vous savez si le client a envoyé un message en testant le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($messageEnvoye["client22"])) {
        // un message est envoyé
    }

  3. #3
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    496
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 496
    Points : 123
    Points
    123
    Par défaut
    Merci pour cette réponse.

    Mais pour stocker l'information il faut déjà savoir si elle est là!
    ça je sais faire!

    c'est l'utilisation correcte de socket_select que j'ai du mal à bien appréhender.
    la doc dit "socket_select() accepte un tableau de sockets et attend qu'elles changent de statut"
    1) il faut enregistrer le socket issu de "socket_create" que j'appel SocketListener dans le tableau "read" mais en fait la fonction socket_select() ne réagira que si il y a une nouvelle tentative de connexion sur ce SocketListener mais ne réagira pas si le client est déjà connecté.
    donc si le client (déjà connecté) envoi un nouveau message il n'y a rien qui réagit. donc je suis obligé dans une boucle tester tous les clients encore connecté pour vérifier s'il ont envoyés un message.

    2)le tableau write: quel socket faut-il mettre en surveillance le socketListener ? alors que ce ce socket ne sert pas pour la communication!
    la fonction socket_accept elle crée un socket de communication qui va permettre d'échanger les messages avec le client. Donc il faudrait mettre le socket de communication à surveiller dans le tableau write ?
    Là je n'ai vu aucun exemple sur ce tableau write. tout ce que j'ai vu sur le web c'est de reprendre la doc du manuel!.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour marco62118 , vous avez trouver la solution ? parce que j'ai aussi le même problème

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/11/2008, 19h21
  2. Réponses: 1
    Dernier message: 01/06/2008, 04h58
  3. [Activ Sync]Comment savoir sir le PPC est connecter en usb ?
    Par Yotho dans le forum Windows Mobile
    Réponses: 3
    Dernier message: 25/07/2007, 16h22
  4. Comment savoir si je suis bien connecté à la base ?
    Par gg9595 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/03/2007, 15h16
  5. Réponses: 6
    Dernier message: 12/06/2006, 13h05

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