Bonjour a tous,
Je voulais créer une petite application de discussion instantanée en AJAX (ceci n'est pas un problême lié a ajax) et ai donc pour cela écrit un script qui permet de connaitre les utilisateurs connectés.J'ai d'abord créer une table comprenant deux champs:
nom d'utilisateur: VARCHAR PRIMARY KEY
temps_connexion: INT
le champ temps_connexion indique jusqu'a quand l'utilisateur sera considéré comme connecté (sous forme de timestamp).
Ensuite lorsque un utilisateur est connecté sur le site est envoyé toute les deux secondes une requête a la table qui ajoute 4 seconde de temps de connection a l'utilisateur connecté et met a jour la table en effaçant les gens dont le temps_connexion est inférieur au timestamp actuel.
Mon problême est que lorsque plusieurs utilisateurs sont connectés en même temps le tout devient un peu anarchique, tout le monde met a jour la table et au final a l'écran on a l'impression que les utilisateurs passent leur temps a se déconnecté et se reconnecter.
Je voudrais donc savoir si il était possible de laisser a la table le soin de se mettre a jour toute seule : avec une sorte de condition que l'on mettrait sur le champ temp_connexion du genre if(temps_connexion<time()) supprimer la ligne.
Ainsi les utilisateurs n'aurait plus qu'a actualisé leur propre temps de connexion et a afficher la liste des connectés régulièrement et ce serait la table qui gèrerait la suppresion des utilisateurs non connectés.
Une deuxième solution serait de faire éxécuter en boucle un script php par le serveur qui mettrait a jour la base de donnée mon problême étant vraiment de n'effectuer cette tache qu'une fois toute les x secondes quelques soit le nombre d'utilisateurs connectés.
Merci d'avance
Ortholle
Partager