Ruby on Rails中的在线用户

时间:2009-09-14 23:01:36

标签: ruby-on-rails ajax ajax-polling

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

我能想到的唯一方法是使用一些定期轮询服务器来更新最后一个动作时间戳,当最后一个时间戳超过xx之前,用户被认为是离线的。但它似乎不是太有效的解决方案。

3 个答案:

答案 0 :(得分:6)

默认情况下,

Authlogic可以执行此操作,并且是一个非常强大的优秀身份验证系统。我建议将您当前的身份验证系统迁移到它(可能需要一天的工作时间,具体取决于系统的自定义程度)。

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

答案 1 :(得分:1)

如果使用数据库会话存储,则可能会检查会话时间。当updated_at延长超过特定时间时,假设用户不再处于活动状态。然而,这也可能存在问题。

老实说,在没有某种形式的定期服务器轮询的情况下告诉活跃的用户数是一个有点困难的场景。你的想法并不坏。

答案 2 :(得分:0)

我们可以列出使用活动记录会话存储的在线用户,请参阅此github应用https://github.com/mohanraj-ramanujam/online-users