2009-09-14 41 views
1

如何检查用户是否在线并显示在线用户列表,最简单的方法是什么?Ruby on Rails中的在线用户

我能想到的唯一方法是更新最后一个操作时间戳的某个定期轮询服务器,并且当上次时间戳大于xx前时,用户被认为是脱机的。但它似乎不是太有效的解决方案。

回答

6

Authlogic默认情况下可以做到这一点,它是一个功能非常强大的认证系统。我建议将您当前的身份验证系统迁移到该系统(可能需要几天的工作时间,具体取决于您的系统是如何定制的)。

如果您不能(或者根本不想)将您的应用程序转移到Authlogic,您可以查看上面链接的源代码以及示例项目here

+0

感谢您指出了他这一点。我自己从来没有听说过Authlogic,但现在对它感兴趣,所以你给我们提供了一些体面的信息:) – Eric 2009-09-15 04:44:18

1

如果您使用数据库会话存储,您可能会检查会话时间。当updated_at超过一定时间时,假定用户不再处于活动状态。然而,这也可能是有问题的。

说实话,在没有某种形式的周期性服务器轮询的情况下告诉活动用户数是一种有点困难的情况。你的想法并不差。