如何利用websocket统计用户每天在线时长?
一开始思路是通过onOpen
和onClose
来记录上线和下线时间进行统计。如果上线和下线发生在一天内还比较好统计。如果是用户前一天上线,一直到第二天才下线,第二天又上线一段时间,这样的话,该如何统计?又如用户上线后一直在线好几天,才下线,这样的话,该如何统计“每天”在线时间?
PS:不用质疑用户为何会一直在线这麽长时间,其实用户是指智能终端。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我觉得在计算的时候,应该能获取到设备在线情况吧?如果在线,你既然想计算每天时长,直接认为是到0点就行了。并且打好标记。
这个你设个累计时间, 上线就隔段时间累加一次, 比如5分钟就加5.
然后做个定时任务, 在午夜的时候, 累计时间存入数据库, 清零不就完了.
统计累计在线时长还是实时显示设备在线时长还是显示设备每天累计在线时长?
累计在线时长onOpen和onClose的时候记录一下就行了,
实时显示设备在线时长当前时间-onOpen就可以了
每天在线时长要复杂一些,需要记录当天是否在线过,建议做定时任务,每天生成前一天的在线时长,方法就是onOpen记录登陆点,每半天增加一个在线点,当天不存在在线点即为下线,存在在线点,取出来排序计算时长即可,方法笨了点,但是能用!
我采用了最笨的方法14分钟统计一次 在线 则 在线率 +1 有什么更好的解决方法吗
我这边也是智能终端,采用点名的方式...点到了更新在线率
每隔一分钟1次心跳,怎么样?1次心跳+1分钟在线时间,加点时间点检测,上次心跳时间~本次时间