当前位置 : 主页 > 编程语言 > ruby >

ruby-on-rails – 如何在Rails 3中查看用户的实时活动?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我想做的是让我的管理员用户能够实时看到(通过一些 AJAX / jQuery的好处) – 我的用户正在做什么. 我该怎么做呢? 我认为它与会话活动有关 – 我已经开始将会话保存到数据库,而不是
我想做的是让我的管理员用户能够实时看到(通过一些 AJAX / jQuery的好处) – 我的用户正在做什么.

我该怎么做呢?

我认为它与会话活动有关 – 我已经开始将会话保存到数据库,而不是cookie.

但一般来说,我如何获取该信息并实时解析?

我查看了我的会话表,除了id(id和session_id)之外,我看到了一个’数据’字段.该数据字段存储一个哈希 – 我无法理解(看起来像md5哈希).

我如何使用它来看到用户A刚刚点击链接B,然后用户B点击了链接A等?

是否有宝石 – 除了rackamole – 可能能够帮助我?

会话数据仅包含存储在session []中的值 – 来自用户的散列.它不存储调用的操作/控制器,因此您不知道哪个“链接被点击”.

获取用户的活动:

除了rackamole你有两个选择恕我直言.

>在ApplicationController中使用before_filter来存储您感兴趣的相关信息.(例如,控制器名称,操作或URI,附加参数和登录用户的ID).
>在每个页面底部使用AJAX调用,将您感兴趣的信息(URI,登录用户的ID等)发回服务器.这样可以缩短服务器的响应时间,因为信息是在页面传送完成后存储的.另外,您不必使用Rails请求来存储它. AJAX请求也可以调用一个简单的PHP脚本将数据写入磁盘.这要快得多.

存储此活动:

将此数据/信息存储在数据库或日志文件中.数据库将提供更多灵活性,例如显示来自一个用户的所有操作,或显示一个页面的所有访问者等.日志文件解决方案将为您提供更好的性能.

实时与Oldschool:

至于实时提取收集的数据,您必须构建自己的解决方案.要优雅地执行此操作(无需每秒查询一次服务器以查看新数据是否已到达),您将需要另一个服务器进程. Search for AJAX Push获取更多信息.

根据您的应用程序,我会问自己是否真的需要实时通知(因为设置它的所有麻烦).

要监控站点上的活动,应该有足够的页面列出最新操作并手动刷新(或每十秒自动刷新一次).

网友评论