日期:2014-05-18  浏览次数:20486 次

讨论一个解决方案
一个经典的解决方案:用于解决同一用户在同一时间只能登录一次
方案一:用数据库,设一个字段,登录时为1,下线为0.   如果重复登录,发现字段值为1就提示用户已在线,
缺点:如果用户非正常退出,字段值一直为1,下次就无法登录进去

方案二:用服务端全局变量(数组),存储成功登录的用户名,如果非正常下线,session过期后自动从数组中删除。

详见:http://hi.baidu.com/flying02/blog/item/f5e04d4a903bbc2208f7ef00.html

我现在就是采用这个方案,但又有问题,session过期会有一段时间,默认好像是20分钟,如果用户非正常退出(比如关闭浏览器),session   在   20分钟后才可以执行从数组中删除的代码,这20分钟内如果用户要上线,就不行了。

讨论一下什么办法可以解决第二方案的问题

------解决方案--------------------
mark,一直没有看到比较完美的解决方案
------解决方案--------------------
这是经典问题,讨论过很多次,搜下吧,正如楼上的:一直没有看到比较完美的解决方案。
------解决方案--------------------
顶 啊
------解决方案--------------------
ls
的方法不错!
------解决方案--------------------
那么这个人必须在同一台电脑上,并且使用同样的windows身份登陆,否则就不能登录了吗?
------解决方案--------------------
Web 无法精确控制, 等待完善方案

------解决方案--------------------
等待趋于完美的解决方案