Ruby on rails 如何在Rails 3中看到用户的实时活动?

Ruby on rails 如何在Rails 3中看到用户的实时活动?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我想做的是让我的管理员用户能够实时(通过一些AJAX/jQuery的细节)看到我的用户在做什么 我该怎么做呢 我假设它与会话活动有关,并且我已经开始将会话保存到db,而不是cookie 但一般来说,我如何获取这些信息并实时解析它呢 我看了一下我的会话表,除了id(id和session_id)之外,我还看到了一个“data”字段。这个数据字段存储了一个散列,我对此一无所知(看起来像md5散列) 我如何使用它来看到用户A刚刚点击了链接B,紧接着用户B点击了链接A,等等 除了rackamole之外,是

我想做的是让我的管理员用户能够实时(通过一些AJAX/jQuery的细节)看到我的用户在做什么

我该怎么做呢

我假设它与会话活动有关,并且我已经开始将会话保存到db,而不是cookie

但一般来说,我如何获取这些信息并实时解析它呢

我看了一下我的会话表,除了id(id和session_id)之外,我还看到了一个“data”字段。这个数据字段存储了一个散列,我对此一无所知(看起来像md5散列)

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


除了rackamole之外,是否还有一个gem可以帮助我?

会话数据只包含存储在用户的
会话[]
-hash中的值。它不存储调用了哪个操作/控制器,因此您不知道单击了哪个“链接”

获取用户的活动: 除了rackamole,你还有两个选择

  • 应用程序控制器
    中使用
    前置过滤器
    ,存储您感兴趣的相关信息。(例如,控制器名称、操作或URI、其他参数和登录用户的id)

  • 在每个页面的底部使用AJAX调用,将感兴趣的信息(URI、登录用户的id等)发回服务器。这使得服务器的响应速度更快,因为信息是在页面交付之后存储的。另外,您不必使用Rails请求来存储它。AJAX请求也可以调用一个简单的PHP脚本,将数据写入磁盘。这要快得多

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

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

根据您的应用程序,我会问自己是否真的需要实时通知(因为设置此项非常麻烦)


要监视站点上的活动,只要有一个页面列出最新操作并手动刷新(或每10秒自动刷新一次)就足够了。

您可能需要签出。他们很容易设置,并有一些你所要求的

也许你可以测试一下
它也适用于Rails 3。

关于手动刷新或自动刷新的建议可能是最好的方式——实际上。既然你已经提到了这一切。谢谢你的介绍。顺便问一下,为什么建议使用PHP脚本将数据写入磁盘?而不是Ruby脚本或Ruby友好的东西?你是对的,当然你也可以使用Ruby之类的东西作为CGI。我之所以考虑PHP,是因为它通常已经在Web服务器上安装和配置好了,而且脚本的代码也只有几行。这实际上是一个很好的建议。我的收件箱中有一个待处理的邀请,我可能会这样做。