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