读书人

突然停电怎么修改登录状态

发布时间: 2013-03-04 17:22:12 作者: rapoo

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

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


如果获取失败,那就可以改成false了
[解决办法]
定时去写状态,或者修改最后登录时间,当发现该时间与当前相差多少时,认为该用户已经退出了。

和上的法都不靠。

停後上,登的,不是要等,5.6分才能登???太弱智了。
[解决办法]

引用:
定时去写状态,或者修改最后登录时间,当发现该时间与当前相差多少时,认为该用户已经退出了。

和上的法都不靠。

停後上,登的,不是要等,5.6分才能登???太弱智了。


是指我说的内容?
如果客户端停电,服务器端不停电,那等客户端通上电,再启动,基本上5、6分钟已经过去了。可以登录了。
如果服务器端停电,通上电,再启动,时间肯定超过5、6分钟了,只要服务器端排程一开始运行,就会清空登录这个表了。客户端还是可以登录了。
像SAP、TIPTOP系统,客户端异常退出,通常都要等20、30分钟才能于进入的。(这个可以设定的)

读书人网 >C#

热点推荐