在使用设计的 ROR 应用程序中计算在线用户的最有效方法是什么?
我正在考虑添加一个名为status
users 表的字段并根据几种情况对其进行更新。关于这个主题的最佳实践是什么?
在使用设计的 ROR 应用程序中计算在线用户的最有效方法是什么?
我正在考虑添加一个名为status
users 表的字段并根据几种情况对其进行更新。关于这个主题的最佳实践是什么?
从理论上讲,您不能在服务器端简单地做到这一点。
服务器是无状态的。访客请求某些东西,服务器给它,然后再见,仅此而已。
那么像 Google Analytice 这样的“在线”解决方案是如何工作的呢?
基本情况是,访问者会在他们的浏览器上运行一段 JS 代码,从您的服务器或 Google 的服务器下载。然后 JS 代码以一定的时间间隔向服务器发送请求,声称该访问者仍然“在线”。
如果一段时间后该访问者没有此类请求,则他“离线”。
JS 代码还可以向服务器发送请求,要求更新访问者状态的视图,因此访问者可以看到其他一些访问者“在线”。
如果完全在您自己的服务器上实现,该解决方案可能会有点复杂,并且需要更高效的存储,例如 Redis 甚至一些实时解决方案。我以前没有研究过这样的宝石,你可以检查一些是否存在于分析类别中。
如果您想要简单的解决方案,zolter 或公共活动 gem 提到的最后一位访客可能适合您。