如何判断一个用户是否离开站点?
比如:
1. 现在只打开一个tab访问v2ex,然后把该tab关闭了
2. 直接关闭浏览器
以上两种都算离开站点了
如果用户一直打开站点,没有关闭,则不算作离开站点。
总而言之:只要有任何一个tab页在打开着站点,就不算作离开站点。
该如何准确实现记录呢?
如何判断一个用户是否离开站点?
比如:
1. 现在只打开一个tab访问v2ex,然后把该tab关闭了
2. 直接关闭浏览器
以上两种都算离开站点了
如果用户一直打开站点,没有关闭,则不算作离开站点。
总而言之:只要有任何一个tab页在打开着站点,就不算作离开站点。
该如何准确实现记录呢?
1
ryd994 Mar 23, 2015 via Android
挂一个js,一直发ajax签到
|
2
typcn Mar 23, 2015
开一个 WebSocket 连接,切换 Tab 之后,浏览器就不会再继续处理这个 WebSocket 的消息。
关掉这个 Tab 之后, 服务器会瞬间收到 Socket Close |
3
zgxltxz Mar 23, 2015 via Android
不限时session
|
6
imn1 Mar 23, 2015
目前通用做法是 session 超时,这个是属于延时判断,非实时
实时判断需要长连接或者server push/client pull,参考chat room |
7
loading Mar 23, 2015
mousemove
blur |
10
rock_cloud Mar 23, 2015
@hussion 没关系吧,原来的断了,新的又连上了,不是照样可以知道用户在线么。
|
11
hussion OP @rock_cloud 问题就再也你如何判定何时离开
|
12
Busy Mar 23, 2015
b/s的为什么非要做成c/s的,你确认你服务器吃得消?
|
13
airyland Mar 23, 2015 @hussion 这个我处理过。socket close 时不是立即设置offline, 而是延时5s后才offline。当刷新页面后socket connect时清除offline定时器就行了。
|
14
futursolo Mar 23, 2015
WebSocket + 延时(超过1s才算断开)
|
15
housne Mar 23, 2015
|
17
gihnius Mar 24, 2015
|