18-02-2011, 12:21 PM
Possibilité de bidouiller en Javascript avec un petit module Ajax.
Lorsque l'utilisateur se connecte et s'identifie, le module lui attribut un identifiant unique lié à son compte, ainsi qu'un timestamp.
Le script est minimal, et ne perdure pas dans le temps.
Toutes les 15 secondes (admettons), le module rafraichit le Timestamp sur l'identifiant correspondant.
A chacune de ces vérifications, le script vérifie les timestamps de toutes les connexions stockés dans la table, si une connexion possède un timestamp vieux de plus de 30secondes, c'est que le module ne l'a pas rafraichit.
Inconvénients de cette méthode : Le serveur ne reconnait pas "la fermeture du navigateur" lorsqu'il y a une seule personne connecté.
Autre soucis : Lorsque de nombreuses personnes sont connectés, le serveur multiplie les vérifications, augmentant la charge de la base de donnée par la même.
Solution possible : Exécution d'un script shell sur le serveur, avec un sleep(30) qui lance le script php de vérification des timestamp, de cette façon le serveur ne se surcharge pas puisqu'on aura toujours qu'un seul script de vérification qui tournera.
Je ne sais pas si c'est là une solution à ton problème ni si c répond a tes besoins.
Lorsque l'utilisateur se connecte et s'identifie, le module lui attribut un identifiant unique lié à son compte, ainsi qu'un timestamp.
Le script est minimal, et ne perdure pas dans le temps.
Toutes les 15 secondes (admettons), le module rafraichit le Timestamp sur l'identifiant correspondant.
A chacune de ces vérifications, le script vérifie les timestamps de toutes les connexions stockés dans la table, si une connexion possède un timestamp vieux de plus de 30secondes, c'est que le module ne l'a pas rafraichit.
Inconvénients de cette méthode : Le serveur ne reconnait pas "la fermeture du navigateur" lorsqu'il y a une seule personne connecté.
Autre soucis : Lorsque de nombreuses personnes sont connectés, le serveur multiplie les vérifications, augmentant la charge de la base de donnée par la même.
Solution possible : Exécution d'un script shell sur le serveur, avec un sleep(30) qui lance le script php de vérification des timestamp, de cette façon le serveur ne se surcharge pas puisqu'on aura toujours qu'un seul script de vérification qui tournera.
Je ne sais pas si c'est là une solution à ton problème ni si c répond a tes besoins.