我想做的是让我的管理员用户能够实时看到(通过一些 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获取更多信息.
根据您的应用程序,我会问自己是否真的需要实时通知(因为设置它的所有麻烦).
要监控站点上的活动,应该有足够的页面列出最新操作并手动刷新(或每十秒自动刷新一次).