par
@rthur » 15 janv. 2022, 11:46
Alors le principe le plus couramment utilisé, c'est dans ta table utilisateurs, d'ajouter un champ qui stockera la date et l'heure de la dernière fois que cet utilisateur a été en ligne.
Et ensuite sur ta page tu fais faire à ton utilisateur une sorte de "ping" toutes les 30 secondes pour dire "je suis toujours en ligne !".
Techniquement, c'est juste un appel ajax toutes les 30 secondes à un script PHP qui va mettre à jour le champ date précédemment créé pour cet utilisateur.
Ensuite pour savoir si un utilisateur est en ligne ou pas et bien tu as juste à comparer la date+heure courante avec la date+heure derniere fois en ligne.
Si > 40 secondes (pour prendre une petite marge par rapport à ton ping de 30 secondes) alors tu considères que l'utilisateur est hors ligne.
J'ai choisis 30 secondes de façon arbitraire, ça dépend de ton nombre d'utilisateurs connectés simultanément et de ce que ton serveur est capable d'encaisser car ça peut être assez gourmand en ressources, donc je déconseillerai de descendre sous les 30 secondes.
Alors le principe le plus couramment utilisé, c'est dans ta table utilisateurs, d'ajouter un champ qui stockera la date et l'heure de la dernière fois que cet utilisateur a été en ligne.
Et ensuite sur ta page tu fais faire à ton utilisateur une sorte de "ping" toutes les 30 secondes pour dire "je suis toujours en ligne !".
Techniquement, c'est juste un appel ajax toutes les 30 secondes à un script PHP qui va mettre à jour le champ date précédemment créé pour cet utilisateur.
Ensuite pour savoir si un utilisateur est en ligne ou pas et bien tu as juste à comparer la date+heure courante avec la date+heure derniere fois en ligne.
Si > 40 secondes (pour prendre une petite marge par rapport à ton ping de 30 secondes) alors tu considères que l'utilisateur est hors ligne.
J'ai choisis 30 secondes de façon arbitraire, ça dépend de ton nombre d'utilisateurs connectés simultanément et de ce que ton serveur est capable d'encaisser car ça peut être assez gourmand en ressources, donc je déconseillerai de descendre sous les 30 secondes.