[发明专利]一种基于消息中间件的客户端自动重连方法有效
申请号: | 201110053661.7 | 申请日: | 2011-03-07 |
公开(公告)号: | CN102111419A | 公开(公告)日: | 2011-06-29 |
发明(设计)人: | 尹建伟;苏勇;吴朝晖;邓水光;李莹;吴健 | 申请(专利权)人: | 浙江大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 杭州裕阳专利事务所(普通合伙) 33221 | 代理人: | 江助菊 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于消息中间件的客户端自动重连方法,通过对服务器处理客户端请求的线程的设计和对客户端的具体操作,解决客户端断后自动重连问题,当消息的发送者出现断网等异常后,保证了不少丢失消息、不重复发送消息。 | ||
搜索关键词: | 一种 基于 消息 中间件 客户端 自动 方法 | ||
【主权项】:
一种基于消息中间件的客户端自动重连方法,包括服务器和客户端,其特征在于所述服务器处理客户端请求的线程包括以下步骤:1)接收到客户端发来请求,进行握手过程,然后接收客户端发送过来的sessionID,解析sessionID,判断是否为空,若为空,则执行2),否则执行3);2)服务器自动生成一个唯一的sessionID,将sessionID发送给客户端,执行4);3)判断sessionID与该客户端在服务器中保存的sessionID是否一致,若一致,执行4),否则,执行5);4)接收并处理客户端请求5)向客户端发送错误报告,关闭该客户端连接;所述客户端的具体操作包括以下步骤:1)创建socket连接成功后,启动socket的读线程R和写线程W,然后将通讯过程交给读线程R和写线程W;2)置sessionID为空,让读线程R、写线程W进行握手过程,若握手失败,则关闭连接并退出,否则判断该客户端是消息发送者,还是接收者,如果是消息发送者,进入3),否则进入4);3)写线程W、读线程R进行发消息过程,直到把消息发完;4)写线程W发送接收消息请求,然后写线程W、读线程R进行接收消息过程,进行接收消息过程;5) 若写线程W捕获到网络异常,保存数据,设置网络异常标识变量为真,然后定时的连接服务器,直到连接上或者连接次数超过上限。连接创建成功后,重新执行握手过程,回到断网前的状态;6) 若读线程R捕获到网络异常,睡眠一段时间,判断标识变量是否为真,若为真,则表示写线程W已经捕获到了网络异常,将标识为设为假,回到原来状态;否则,阻塞写线程W,启动一个新的写线程W2,与读线程R一起进行握手过程,握手成功后,杀死写线程W2,唤醒写线程W,回到断网前的状态。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110053661.7/,转载请声明来源钻瓜专利网。