前后端分离的web社区类项目,如何统计在线人数
这种一般可以在用户登录、Session 被刷新时对状态进行更新(在线)
在 Session 和 登录过期 时更新为(离线)
这种方法的统计极度不准确。还有一种方法:
用户在线的时候定期给服务端发送一个心跳包,间隔可以长一点
如果在一定时间内没收到某用户心跳包,在线人数 - 1
WebSocket 的话可能会有一点浪费了。毕竟用户量一大就会开蛮多连接的。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
看到过一个有趣的做法,就是 v2ex 的站长早些年发的一个帖子。
来源:关于用 Redis 做在线人数统计 - V2EX
原文下方,还有很多人给出了不同的方案,也可以用来作为参考