日期:2014-05-17  浏览次数:20893 次

突然停电,如何修改登录状态
一个软件,只能限制一个用户在一个地方登陆,登录后,修改服务端的登陆状态为true,退出程序,修改服务端的登录状态为false,这样,下次能正常登陆。

可是,突然停电,我测试了一下,服务端的登录状态并没有变成false,使得用户下次不能登陆。
这种情况,该怎么处理呢?

------解决方案--------------------
停电没时间反应的。
定期报道下。。。如果长时间不报道那就设为false/
------解决方案--------------------
那只能高频率地轮询操作来判断,一旦客户端没有请求发来,那肯定是掉线了。
------解决方案--------------------
定时去写状态,或者修改最后登录时间,当发现该时间与当前相差多少时,认为该用户已经退出了。
------解决方案--------------------
这个服务器上得有个程序定时检查用户是否在线,如果一段时间没发反,就设置为false允许登录。
------解决方案--------------------
做个心跳连接
------解决方案--------------------
来电后启动程序时全部设为false
------解决方案--------------------
客户端突然停电的话,那服务端的网络OS也许会记录客户端的网络连接状态断开吧,那来电后重新登录时,就可以先检测这个状态的变化,再来选择是否刷新服务端的登录状态,是否有这种可能呢?
------解决方案--------------------
虽然我不会编,但是我想你和客户端建立连接后可以通过测试网络连接的方法来判断他是否在线,或者连接后检查你得程序是否正常运行,如果没有找到你得程序就为false,否则为true,timer控件可以设置为500.这样不会加重服务器的运行资源的。
------解决方案--------------------
直接mac地址
------解决方案--------------------
服务端定时发送数据到客户端,客户点收到后发送反馈。如果连续几次或者多久服务端没有收到反馈就算离线了吧
------解决方案--------------------
记得以前玩聊天室类(江湖聊天室)时, 掉线的有个掉线处理功能, 可以通过那个功能修改登录状态.........
------解决方案--------------------
你在记一个活动时间呗。如果活动登陆状态为True,当前时间-登录时间>设定值就让他登陆。
------解决方案--------------------
当前时间-最后活动时间>设定值就让他登陆
------解决方案--------------------
可以设计成后一次登录时断开前一次登录,效果是一样的
------解决方案--------------------
你学QQ,允许多处登录,但是第二个登录的将前面那个登录的状态给挤掉,强迫前面那个下线,如果是本地双开,通过进程判断就可以了,QQ也是那样的。
------解决方案--------------------
最近我也纠结这个。。。来学习一下
------解决方案--------------------
引用:
心跳连接?什么心跳连接?


客户端定时改变数据库中存的时间,再次登陆时用那个时间跟你的登陆时间差来做判断,
超过你设定的时间便是还未登陆。。。
------解决方案--------------------
引用:
引用:
你在记一个活动时间呗。如果活动登陆状态为True,当前时间-登录时间>设定值就让他登陆。
设定值是什么意思?自己随便定的一个数值?

是的呀,根据你系统的要求啦。
------解决方案--------------------

------解决方案--------------------
客户如果长时间没有请求 就为下线 如果再有请求让他重新登录
------解决方案--------------------
自己对每一个会话做一个唯一id,如果当前登录会话的id不等于那个为false的会话,则证明有意外啊。同样可以登录的
------解决方案--------------------
我之前是在服务器端用数据库来实现这个效果的,用其他方式保存也应该可以。
我是用一个表来存放,有两列:“用户名”、“时间”。
客户端每两分钟修改一下表中的“时间”。
服务器的数据库有一个排程,每隔3分钟分查询一下表中“时间”与当前时间差大于5分钟的,删除掉查询出来的记录。
客户端登录时,查询这个表,如果登录的“用户名”已经存在,表示已经登录了;如果不存在,增加记录。
这样,如果客户端断线超过5、6分钟,就可以再登录了。就算是服务器端停电,也不用人工处理了。
------解决方案--------------------
当客户端登陆时,让服务器定期向客户端发送消息,获取客户端时间或者其他东西,有效字符就可以了。