数据库里有一个用户标示用来记录用户状态,在登录方法中如用户登录成功将用户状态标示修改为在线状态但是如果用户直接叉掉浏览器或直接叉掉网站怎样将数据库中的那个标示改为离线状态???
这个是个大问题。
一般来说,都是对会话信息进行更新,如果最后活动时间超出会话超时时间,则判定为离线,但这个。。。一般会话超时是20分钟,而假如是时时在线。。。也不能解决。
这类问题历时多年了,web上这类问题,除了(长链接)之后其它正常的应用,都是采用限制时离线法,定时检测法,15钟(自己定时)左右未活动(没有数据请求)则显示为离线。
使用心跳包,在一定的间隔时间不停的发送请求到服务器,当服务器超过指定的时间没有收到请求,则表示用户已经离开站点。