[发明专利]一种基于版本号的高可靠消息机制来保证消息的方法在审
申请号: | 202011486007.0 | 申请日: | 2020-12-16 |
公开(公告)号: | CN112583701A | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 邬江明;朱卉明 | 申请(专利权)人: | 焦点科技股份有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 陈建和 |
地址: | 210032 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 版本号 可靠 消息 机制 保证 方法 | ||
一种基于版本号的可靠消息机制来保证消息的方法,1)初始化消息版本号,当客户端与服务器建立连接后,服务端为每一个客户端维护一个消息版本号和一个唯一的channelId,同时客户端自己也维护两个消息版本号,初始值都为0,服务端的为seqId,客户端中seqId表示的是服务端已产生的消息的版本号,localSeqId表示的是客户端已收到版本号,svrSeqId表示客户端已知服务器的最大的seqId值;2)设置服务端消息的版本号;3)服务端向客户端发送通知,让客户端来拉取具体的消息内容;4)客户端收到通知消息后处理,5)服务端处理客户端的拉取消息请求,6)客户端处理拉取到的消息集合,并更新localSeqId。
技术领域
本发明涉及即时通讯技术领域。尤其是涉及提供可靠的消息机制的方法。
背景技术
在即时通讯技术领域,需要一种可靠的消息机制来保证消息的不丢失。然而传统的消息机制大多是使用回执确认的方式,首先这种方式并不能保证消息的不丢失,其次当部分客户端触发重发后,会影响服务器造的性能,严重时会导致服务器不可用。
因此,需要一种更加可靠的消息机制来确保消息的不丢失,同时也不会影响服务器的性能。
发明内容
本发明所要解决的技术问题是,克服现有技术的不足,提供一种基于版本号的可靠消息机制来保证消息的不丢失,同时也不会对服务器的性能造成影响。
本发明技术方案是,一种基于版本号的可靠消息机制来保证消息的方法,具体步骤包括:
步骤1:初始化消息版本号,具体为:当客户端与服务器建立连接后,服务端为每一个客户端维护一个消息版本号和一个唯一的channelId(通道识别),同时客户端自己也维护两个消息版本号,初始值都为0,服务端的为seqId(SeqID:标识或版本号),客户端的为localSeqId和svrSeqId;seqId表示的是服务端已产生的消息的版本号,localSeqId表示的是客户端已收到的消息的版本号,svrSeqId表示客户端已知服务器的最大的seqId值;
步骤2:设置服务端消息的版本号,具体为:当服务端每产生一条消息,就通过redis的命令incr使seqId值加1,然后将返回的seqId值和消息存入redis的zset结构中,其中zset的key为channelId,分数为seqId,值为消息;
步骤3:服务端向客户端发送通知,具体为:服务端每产生一条消息,都将步骤2中设置的seqId发送给客户端,告知客户端有新的消息,让客户端来拉取具体的消息内容;
步骤4:客户端收到通知消息后的处理,具体为:客户端收到的服务器的seqId后,首先比较svrSeqId和seqId的值,如果seqId大则将svrSeqId更新为seqId的值,然后将svrSeqId和localSeqId进行比较,如果localSeqId小于svrSeqId,表示客户端有消息需要拉取,否则表示暂时没有消息需要拉取;如果有消息需要拉取,客户端就向服务器发送拉取消息的请求,并且携带参数localSeqId;
步骤5:服务端处理客户端的拉取消息请求,并返回对应的消息,具体为:服务器收到拉取消息请求后,去zset中查找分数大于localSeqId的消息集合,并将每个消息以及它对应的版本号seqId一起发送给客户端;
步骤6:客户端处理拉取到的消息集合,并更新localSeqId,具体为:客户端收到拉取的消息集合后,将localSeqId更新为消息集合中最大的seqId值;
步骤7:心跳处理,具体为:客户端没间隔30秒发送一次心跳给服务器,并携带localSeqId值,服务器收到心跳后,比较localSeqId和seqId的大小,如果seqId大于localSeqId,则向客户端发送通知消息,并将服务端的seqId发给客户端,接着执行步骤4。
有益效果,本发明与现有技术相比,其显著优点有:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于焦点科技股份有限公司,未经焦点科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011486007.0/2.html,转载请声明来源钻瓜专利网。