检查Moodle用户是否在线



我需要知道用户是否在Moodle在线,有一个Moodle块用于它,但实际上它只是检查用户在过去X分钟内是否在Moodle上有活动,但在我的情况下,这是没有用的。有什么好知道的呢?

正如其他回答者所说,不可能看到用户当前是否在线。如您所述,在线用户阻断检查mdl_user.lastaccess的值。这可能是最好的选择,但即使这样,它也取决于用户访问或刷新页面。例如,他们可以阅读一个页面10分钟,所以技术上仍然在线,但它不会显示他们在线。或者相反,他们可能已经看了一个页面,并立即关闭它,所以它会显示他们是在线的,但技术上不是。

根据我的经验,很多用户不会退出Moodle,他们只是关闭页面。因此,这不是一种可靠的方式来查看他们当前是否登录。

作为参考,mdl_user.lastaccess按以下顺序更新:

进入index.php或任何使用require_login()的页面,这几乎是Moodle中的大多数页面。

调用user_accesstime_log()

如果mdl_user.lastaccess的时间在最近60秒内没有更新(由LASTACCESS_UPDATE_SECS设置),则mdl_user.lastaccess的时间更新为当前的time()

HTTP不允许您实时查看其他人在线。您发送请求,并从服务器获得响应。就是这样。当然,你可以发送一个请求并每秒获得一个响应来尝试模拟一个实时应用程序,但这会变得有点混乱。

获得实时连接的最佳方式是通过web套接字,这可以通过node中的一些库来完成。只需谷歌'node websocket教程',你就会找到你想要的。

如果你想外包websocket的东西,我强烈推荐pusher.com,它只需要你在你的网页上包含一些javascript来与他们的websocket服务交互。

当然,如果你想为Moodle获取这个,你可能是SOL。但是我想我应该试着解释一下,如果你要做一些实时的事情,你需要什么。祝你好运!

相关内容

最新更新