Maison > base de données > tutoriel mysql > le corps du texte

Comment suivre efficacement le statut en ligne des utilisateurs dans PHP et MySQL ?

Susan Sarandon
Libérer: 2024-10-26 13:31:30
original
881 Les gens l'ont consulté

How to Efficiently Track User Online Status in PHP and MySQL?

Détermination du statut en ligne d'un utilisateur dans PHP et MySQL

En utilisant le suivi de session, cet article vise à établir une méthode efficace pour déterminer la connexion d'un utilisateur présence.

Piggyback sur les sessions

Bien que le superposition sur les sessions PHP fournisse une solution pratique, elle repose sur des horodatages et des délais d'attente. Pour éviter ces limitations, nous explorons une approche alternative centrée sur le suivi de l'activité des utilisateurs.

Suivi basé sur une base de données

Dans la table "Utilisateurs" de votre base de données, créez un "lastActiveTime " champ qui capture l'heure de la dernière interaction d'un utilisateur. En mettant continuellement à jour ce champ, vous pouvez déterminer le statut en ligne d'un utilisateur en recherchant ceux qui ont un "lastActiveTime" dans une période spécifiée, comme les cinq dernières minutes.

Éviter les fuseaux horaires

Pour simplifier le processus, utilisez l'heure de votre serveur (via la fonction NOW() de MySQL) plutôt que d'essayer de tenir compte des fuseaux horaires. Cette approche fournit une méthode fiable pour suivre les utilisateurs actifs en temps réel.

Mises à jour constantes

Si le suivi d'une activité continue est essentiel, vous pouvez implémenter un script JavaScript qui envoie un "ping" à votre serveur toutes les minutes. Cela mettra à jour les enregistrements d'activité des utilisateurs sans nécessiter une navigation constante sur les pages.

Extrait de code mis à jour

L'extrait de code mis à jour suivant utilise la récupération et promet de gérer les requêtes « ping » :

<code class="javascript">(async function ping() {
    // Asynchronously call stillAlive.php
    await fetch("stillAlive.php");
    // Issue this call again in 60 seconds
    setTimeout(ping, 60_000);
}());</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!