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 :

[PHP-JS] Actualisation des membres "hors ligne" : quelle méthode ?


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Points : 18
    Points
    18
    Par défaut [PHP-JS] Actualisation des membres "hors ligne" : quelle méthode ?
    Lorsqu'un membre se connecte à son compte, aussitôt on le met "en ligne" et on ajoute "+ 1" au nombre de membres en ligne.
    Lorsqu'un membre se déconnecte, aussitôt on le met "hors ligne" et on ajoute "- 1" au nombre de membres en ligne.
    Ici, la mise à jour des membres "en ligne" et "hors ligne" est instantanée.

    Cependant, certains membres ne se déconnectent pas quand ils quittent le site internet, pour utiliser la connection automatique à leur compte (quand ils reviendront sur le site).

    Le moyen que je connais, pour savoir que ceux-là sont "hors ligne", est d'enregistrer la date et l'heure de la dernière page affichée sur le site. On choisit une durée de X minutes et quand un membre affiche une page du site, on regarde les membres qui sont "en ligne" mais dont l'heure de la denrière page affichée est supperieure aux X minutes, et ont les met "hors ligne".
    Mais cela posse des problèmes :
    - Si on choisis un temps trop court, de 1 à 2 minutes par exemple, des personnes toujours "en ligne" qui lisent les informations d'un membre ou qui écrivent un message à un membre, par exemple, se retrouvent rapidement "hors ligne" alors qu'ils ne le sont pas. Ceci peut aussi fausser le nombre de membres en lignes. Si 1000 personnes sont entrain d'écrire un message, le nombre de membres va brusquement passer à moins 1000 membres en ligne puis un peu plus tard brusquement re-passer à plus 1000 membres en ligne.
    - Si on prend un temps trop long, de 5 minutes par exemple, les personnes ayant quittées le site sans se déconnecter ne seront considérés "hors ligne" qu'au bout de 5 minutes. Entre temps, un membre peut voir un ami à lui "en ligne" alors qu'il a quitté le site il y a une minute, et ce membre lui enverra un invitation de chat, par exemple, croyant qu'il est toujours en ligne. Le membre va donc attendre pour rien que son ami accepte l'invitation de chat !
    Quand vous avez beaucoup de membres "en ligne", en sachant que beaucoup d'entres-eux ne se déconnectent pas (pour utiliser la connection automatique à leur compte), les membres "en ligne" et le nombre de membres en ligne n'est alors pas exacte.

    Je sais qu'il est possible d'utiliser une autre méthode : avec la balise <iframe></iframe> qui permet d'afficher une page internet à l'interieure d'une page internet. Dans le menu du site, on utlise cette balise pour afficher une page internet qui contient le code indiquant que le membre en ligne. Toutes les X secondes, on ré-affiche cette page (avec du code javascript). Ainsi, tous les membres ayant une heure supperieur à ces X secondes sont mis "hors ligne". La durée, ici beaucoup plus courte, permet de rendre les membres "en ligne" et le nombre de membres en ligne beaucoup plus réaliste. Et puis, un membre n'a pas besoin d'afficher une nouvelle page pour dire qu'il est "en ligne", il suffit qu'une page du site soit ouverte.
    Cette méthode est t'elle beaucoup utilisée ??

    Sinon, connaissez-vous d'autres méthodes ?
    Je pense qu'on ne pas utiliser les sessions pour cela ?
    Je cherche juste la méthode qui permettent de mettre "hors ligne", pas forcément instantanément mais dans une durée courte, les membres qui quittent le site sans se déconnecter.

    Pour info : il s'aggit d'un - futur - site de rencontre.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Points : 304
    Points
    304
    Par défaut
    Il existe une fonction en javascript (settimeout me semble-t-il) qui peut exécuter du code à intervale régulier (par exemple toutes les minutes). Ce code, cela peut-être de l'ajax. Le code de l'Ajax à exécuter serait une fonction php qui modifie un timestamp dans une db. Ce timestamp pourra être utilisé pour déterminer qui est en ligne et qui ne l'est pas.
    Quand un problème a une solution, rien ne sert de s'inquiéter. Quand il n'y a pas de solution, s'inquiéter n'arrange rien.

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/07/2013, 00h54
  2. Enregistrer les traces des pages consultées hors ligne
    Par AprilD dans le forum Windows XP
    Réponses: 6
    Dernier message: 27/03/2008, 19h44
  3. [AJAX] Enregistrer les traces des pages consultées hors ligne
    Par AprilD dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/03/2008, 17h15
  4. Réponses: 1
    Dernier message: 16/01/2006, 17h36

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