以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何让客户端openQQ重连30秒后,不再尝试重连而关闭程序?像QQ尝试60秒失败后变灰头像离线  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=94314)

--  作者:chen3728060
--  发布时间:2016/12/21 9:24:00
--  如何让客户端openQQ重连30秒后,不再尝试重连而关闭程序?像QQ尝试60秒失败后变灰头像离线

在disconnected事件里,加了

 

messagebox.show(e.mode)

 

Mode值 对应原因
1 用户主动退出,例如关闭项目或执行QQClient的Stop方法。
2 用户被服务器踢出。
3 服务器在规定时间内容内没有收到用户的心跳信号。
4 同名用户在其他位置重新登录,导致当前登录被服务器中断。
5 服务器端关闭QQServer。

 

我自己电脑的客户端,我禁用了本地连接,软件就已经弹窗提示 1,确定以后,然后狐表开始尝试重连openQQ。服务器端设置的心跳超时是30秒,但是一直都没有看到客户端超过30秒后提示 3

 

我想要的效果是,网络断了(例如客户机器长期不动要进入睡眠状态了),然后狐表开始重连openQQ,重连30秒后,确定是心跳超时死了,就提示3,那我就可以通过判断这状态,执行 syscmd.project.exit()。我要客户端知道自己超时死亡后,自动关闭程序。请问怎么做到?就好比QQ,刚断线的时候会尝试重连60秒,连不上了,就会彻底变成灰色头像,离线状态,不再尝试。现在的openQQ,客户端断线了会一直尝试重连,一直尝试,死也不断气。。。

[此贴子已经被作者于2016/12/21 10:12:15编辑过]

--  作者:chen3728060
--  发布时间:2016/12/21 10:11:00
--  

顶顶~


--  作者:有点色
--  发布时间:2016/12/21 10:51:00
--  

 测试了一下其余的退出都有效,你测试有效吗?

 

 暂时没有两台电脑,无法测试客户端断线的情况,按常理,这个也不难处理,应该是有效的才对。


--  作者:chen3728060
--  发布时间:2016/12/21 10:54:00
--  回复:(有点色) 测试了一下其余的退出都有效,...

你一台电脑,刚好就是测试不到本地连接断开的这个情况~


--  作者:chen3728060
--  发布时间:2016/12/21 10:59:00
--  

按照mode 3的情况,理论上应该只有 服务器端会知道,看它的原话\'服务器在规定时间内容内没有收到用户的心跳信号" ,客户端是发送心跳信号,服务器端是接受心跳信号。服务器也会给客户端发送心跳信号?

 

客户端貌似只知道发,一直发发发,客户端不能设置发超时,自己干掉自己


--  作者:有点色
--  发布时间:2016/12/21 11:21:00
--  
 客户端应该也有心跳,取服务器的信息,如果尝试3次超时以后,自动触发事件。但不清楚foxtable有没有做到此功能。
--  作者:chen3728060
--  发布时间:2016/12/21 11:36:00
--  回复:(有点色) 客户端应该也有心跳,取服务器...

我帮你测试,5分钟后我回复


--  作者:有点色
--  发布时间:2016/12/21 11:41:00
--  
以下是引用chen3728060在2016/12/21 11:36:00的发言:

我帮你测试,5分钟后我回复

 

你也可以自己写一段代码,如果连不上网几次,就退出也可以。


--  作者:chen3728060
--  发布时间:2016/12/21 17:32:00
--  回复:(有点色)以下是引用chen3728060在2016/12/21 ...

求参考代码求参考代码~


--  作者:有点色
--  发布时间:2016/12/21 18:15:00
--  

 

http://www.foxtable.com/webhelp/scr/1401.htm

 

http://www.foxtable.com/webhelp/scr/2709.htm