【如何检测用户离开了网站?】
发布于 1年前 作者 a147947 1046 次浏览 最后一次编辑是 10个月前

现在我用socket.io 与 express做一个聊天的系统,用户数据是存在mongodb里的,怎么样才能检测到用户离开了这个网站? 注:cookie存在一个月,并且用户可能多个浏览器同时开启这个页面,所有本站页面全关闭才算离开页面。 我应该怎么做??
有没有实时的方法????

8 回复

发送心跳包。

具体怎么实现?

监听disconnect事件,然后做防抖

session存一个月?

什么叫防抖??

@a147947 因为你刷新页面也会出发disconnect事件的,所以需要一段事件来做缓冲防抖。

单独窗口的话可以用 window.onbeforeunload = function() {/* ajax request */} 然后用ajax request通知server 如果是全部窗口的话,当用户打开的时候也要通知server,server要记下用户打开的每个页面 推荐使用redis

一直挂一个连接到服务器(设置60s超时, 不管是正常返回还是异常返回 客户端都重新发起连接), 当正在连接时用户关闭浏览器 会触发request的close事件, 这时候就是用户已经离线了

回到顶部