2010-08-07 9 views

Répondre

2

La seule façon de savoir si quelqu'un est en ligne (et de voir votre site) est d'avoir une connexion ouverte avec elle. Mais, après le chargement d'une page, la connexion HTTP à votre serveur est fermée et le client ne parle plus à votre serveur jusqu'à ce qu'il veuille voir une autre page.

Donné ce, vous pouvez effectuer les opérations suivantes:

  1. Devinez si le client est-il encore en supposant qu'elle est « en ligne » pour x minutes après qu'elle a demandé une dernière page.
  2. Demandez au client d'envoyer un « battement de coeur » à votre serveur à intervalles réguliers en utilisant Javascript, puis appliquez 1.
  3. ont fait le client à maintenir une connexion permanente à votre serveur en utilisant quelque chose comme Comet, qui vous donnera le plus précis résultat.

Ce qui est le plus approprié dépend de la précision dont vous avez besoin.

0

Si vos utilisateurs se connectent alors vous pouvez ajouter une colonne à vos utilisateurs table comme

rails g migration add_online_to_users online:boolean 

et chaque fois qu'un utilisateur démarre une nouvelle session, vous pouvez remplir cette colonne avec « true »

user.online = true 

et lorsque l'utilisateur se déconnecte, vous pouvez mettre

user.online = false dans vos sessions méthode destroy