2009-09-14 6 views
1

Quelle est la manière la plus simple de vérifier si l'utilisateur est en ligne et d'afficher la liste des utilisateurs en ligne? La seule façon que je peux penser est un serveur d'interrogation périodique pour mettre à jour dernière action timestamp, et lorsque le dernier horodatage est plus de xx il y a, l'utilisateur est considéré comme hors ligne. Mais cela ne semble pas être une solution trop efficace.Utilisateurs en ligne dans Ruby on Rails

Répondre

6

Authlogic peut le faire par défaut, et est un excellent système d'authentification qui est très puissant. Je suggère de migrer votre système d'authentification actuel (peut-être une journée de travail, en fonction de la façon dont votre système est personnalisé).

Si vous ne pouvez pas (ou ne voulez tout simplement pas) déplacer votre application vers Authlogic, vous pouvez consulter le code source sur le lien ci-dessus, ainsi qu'un exemple de projet here.

+0

Merci pour lui montrant que. Je n'ai moi-même jamais entendu parler d'Authlogic, mais je m'y intéresse maintenant, alors vous nous avez tous fourni des informations décentes :) – Eric

1

Vous pouvez potentiellement vérifier l'heure de la session si vous utilisez le magasin de sessions de base de données. Lorsque update_at dépasse une certaine durée, supposons que l'utilisateur n'est plus actif. Cela pourrait aussi poser problème. En toute honnêteté, il est un peu difficile de dire au nombre actif d'utilisateurs sans une forme d'interrogation périodique du serveur. Votre pensée n'est pas mauvaise.