判断离线以超时为依据而不是等待用户点击注销。
另外用户直接关闭窗体就默认为注销,临时转到其他url则要等超时(而不是认为是注销)
超时判断以10-60秒钟为好再长了就無法用了(同一账号无法及时登录)。
可以使用iframe或者ajax方法让用户页面异步访问后台,后台从Session中获取用户的账号信息然后在数据库中记錄最后一次访问时间。
数据库可以这样设计三个字段:
SessionID,用户账号最后访问时间
然后判断“当前用户是否重复登录”的程序判断同一个账號是否已经在其他会话中登录(未超时),
同时顺便把超时的记录删除掉(显然不删除也没有逻辑错误)
预先确定一下业务逻辑,是禁圵重复登录还是后登录的用户把前边的“踢掉”如果是后者还要多设计一点处理逻辑。
最好将这个写为一个WebService(此时需要配置WebService启用Session)单獨找一个比较稳定的空间部署。这个WebService应该具有同时服务上万客户端的能力