我认为Laravel也解决了这个问题,但我想稍微提一下我的问题。
Laravel是否可以实时显示当前登录的用户数量?
如果记录了10个用户,那么计数器应显示10个用户已登录。这将显示给所有10个用户,但实时显示。
因此,如果某些用户退出,则计数器应该减少。
我使用的方法就像尝试登录后一样,我们可以增加DB中其中一列的计数器。我们可以使用另一个表,比如登录表。
当用户注销时,我们会通过删除用户的Auth :: id来减少计数器,并且计数会减少。
但后来我想实时尝试一下,laravel本身怎么可能呢?
答案 0 :(得分:0)
答案 1 :(得分:0)
你想的并不是那么简单。您可以在每次用户登录时增加存储在数据库中的某种数字,并在每次用户点击注销网址时减少数量,但对于那些不使用注销网址并且刚刚关闭的用户会怎样窗户?它会在短时间内生成错误数据。 Laravel默认将会话保存在文件中,即使用户不活动,他们也可以在服务器硬盘上停留数周/数月/年。
<强> BUT 强>
可以在数据库[http://laravel.com/docs/4.2/session#database-sessions]
中存储会话正如您在Laravel文档中所看到的,Laravel使用last_activity
字段来存储用户活动数据,通过访问此字段,您只需检查在选定时间段内有多少用户处于活动状态。
了解您可以在视图中轻松显示此内容。 我不打算为你编写代码,我认为准备查询来获取数据并不是那么难。我希望我能帮助你。
答案 2 :(得分:0)
我通过在每次加载页面时使用user_id写入DB表来解决此问题。
然后,我创建了一个视图,该视图显示了过去8分钟内一直处于活动状态的每个人的列表。我的逻辑是,在8分钟内没有更新活动表就意味着他们已经离开了网站。
效果很好。我不知道在一个拥有大量流量的巨大网站上会有多高的效率。我正在从事的项目每天只有数百人登录。