我想做的是让我的管理员用户能够实时看到(通过一些AJAX / jQuery的好处) - 我的用户正在做什么。
我该怎么做?
我认为它与会话活动有关 - 我已经开始将会话保存到数据库,而不是cookie。
但一般来说,我如何获取该信息并实时解析?
我查看了会话表,除了ID(id和session_id)之外,我看到了一个'数据'字段。该数据字段存储一个哈希 - 我无法理解(看起来像md5哈希)。
我如何使用它来看到用户A刚刚点击链接B,然后用户B点击链接A等等?
有没有宝石 - 除了rackamole - 可能能够帮助我吗?
答案 0 :(得分:4)
您可能想查看Mixpanel。它们易于设置并具有您要求的一些功能。
答案 1 :(得分:2)
会话数据仅包含存储在用户的session[]
- 哈希中的值。它不存储调用的操作/控制器,因此您不知道哪个“链接被点击”。
除了Rackamole,你有两个选择恕我直言。
使用before_filter
中的ApplicationController
来存储您感兴趣的相关信息。(控制器名称,操作或URI,其他参数和登录用户的ID,例如)。
在每个页面底部使用AJAX调用,将您感兴趣的信息(URI,登录用户的ID等)发回服务器。这样可以缩短服务器的响应时间,因为信息是在页面传送完成后存储的。另外,您不必使用Rails请求来存储它。 AJAX请求也可以调用一个简单的PHP脚本将数据写入磁盘。这要快得多。
将此数据/信息存储在数据库或日志文件中。数据库将提供更多灵活性,例如显示来自一个用户的所有操作,或显示一个页面的所有访问者等。日志文件解决方案将为您提供更好的性能。
至于实时提取收集的数据,您必须构建自己的解决方案。要优雅地执行此操作(无需每秒查询一次服务器以查看新数据是否已到达),您将需要另一个服务器进程。 Search for AJAX Push了解更多信息。
根据您的应用程序,我会问自己是否真的需要实时通知(因为设置它的所有麻烦)。
要监控您网站上的活动,应该有一个列出最新操作的页面并手动刷新(或每十秒自动刷新一次)。
答案 2 :(得分:1)
也许你可以测试https://github.com/raid5/acts_as_scribe#readme 它也适用于Rails 3。