一种消息连续性识别方法、装置和系统制造方法及图纸

技术编号:32509927 阅读:27 留言:0更新日期:2022-03-02 10:52
本发明专利技术实施例提供一种消息连续性识别方法、装置和系统,每次收到消息时将收到的消息作为当前消息,为所述当前消息生成唯一的标识信息;并且,获取所述当前消息的前一消息的标识信息,并将所述当前消息、所述当前消息的标识信息和前一消息的标识信息分别对应作为封装消息的消息字段、当前标识字段和前一标识字段得到当前封装消息;将所述当前封装消息发送给客户端。给客户端。给客户端。

【技术实现步骤摘要】
一种消息连续性识别方法、装置和系统


[0001]本专利技术涉及计算机软件领域,尤其涉及一种消息连续性识别方法、装置和系统。

技术介绍

[0002]IM(即Instant Messaging,即时通信)系统中目前常用的消息连续性判断方法主要是为每条消息产生一个自增ID,通过判断自增ID是否连续来判断消息是否连续,例如1,2,3是自增连续的,而1,2,4不是自增连续的,这种方法存在如下缺点:
[0003]1.需要设计并实现一个高可用的“自增ID生成服务”,增加了IM系统部署的复杂性;
[0004]2.消息连续性完全依赖于“自增ID生成服务”且无法降级,如果“自增ID生成服务”出现故障,则IM系统的消息连续性判断就会出现问题,进而导致IM系统无法感知到丢消息的情况;
[0005]3.自增ID无法对消息列表中的消息进行快速的删除和修改,例如删除一条消息后,该消息之后的所有消息ID需要减1,才能保证删除后消息连续,效率低;
[0006]在实现本专利技术过程中,申请人发现现有技术中至少存在如下问题:
[0007]现有的消息连续性方法扩展性差、对消息列表修改的效率低。

技术实现思路

[0008]本专利技术实施例提供一种消息连续性识别方法、装置和系统,解决了现有的消息连续性方法扩展性差、对消息列表修改的效率低的问题。
[0009]为达上述目的,一方面,本专利技术实施例提供一种消息连续性识别方法,应用于服务端,包括:
[0010]每次收到消息时将收到的消息作为当前消息,为所述当前消息生成唯一的标识信息;并且,
[0011]获取所述当前消息的前一消息的标识信息,并将所述当前消息、所述当前消息的标识信息和前一消息的标识信息分别对应作为封装消息的消息字段、当前标识字段和前一标识字段得到当前封装消息;
[0012]将所述当前封装消息发送给客户端;
[0013]其中,所述前一消息是在收到当前消息的前一次收到的消息;
[0014]相邻封装消息之间通过当前标识字段和前一标识字段构成链表关系。
[0015]进一步地,在所述将所述当前消息、所述当前消息的标识信息和前一消息的标识信息分别作为封装消息的消息字段、当前标识字段和前一标识字段得到当前封装消息之后,还包括:
[0016]使用所述当前消息的标识信息更新服务端的最新标识信息;
[0017]将所述当前封装消息作为离线封装消息添加到第一存储区;
[0018]其中,所述最新标识信息用于记录服务端最新一次接收到的消息的标识信息;
[0019]所述方法还包括:
[0020]收到来自所述客户端的最后连续标识信息;并且,
[0021]比较所述最后连续标识信息和所述最新标识信息,如果判断出所述客户端没有收到所述最新标识信息对应的消息,则根据所述最后连续标识信息、所述最新标识信息以及所述链表关系查询所述第一存储区中各离线封装消息的当前标识字段获得离线封装消息集合;
[0022]将所述离线封装消息集合发送给客户端;
[0023]其中,最后连续标识信息用于记录客户端收到的按所述链表关系保持连续的各消息中的最后一个消息对应的标识信息;
[0024]所述离线封装消息集合包括:在所述最后连续标识信息对应的消息之后服务端收到的至少一个消息分别对应的离线封装消息。
[0025]进一步地,所述每次收到消息时将收到的消息作为当前消息,为所述当前消息生成唯一的标识信息,具体为:
[0026]通过标识信息生成服务为每次收到的消息生成相应的标识信息;或者,
[0027]使用收到消息时的服务端时间戳作为该消息的标识信息;或者,
[0028]通过所述标识信息生成服务为每次收到的消息生成相应的标识信息,当所述标识信息生成服务异常时,自动切换为使用收到消息时的服务端时间戳作为该消息的标识信息。
[0029]另一方面,本专利技术实施例提供一种消息连续性识别方法,应用于客户端,包括:
[0030]当收到来自服务端的当前封装消息,将所述当前封装消息添加到第二存储区,所述封装消息包括消息字段、当前标识字段和前一标识字段;相邻封装消息之间通过当前标识字段和前一标识字段构成链表关系;并且,
[0031]根据链表关系分析所述第二存储区中在当前的最后连续标识信息对应的封装消息之后接收到的各封装消息,按所述链表关系得到所述之后接收到的各封装消息中与当前的最后连续标识信息对应的封装消息保持连续的最后一个封装消息对应的当前标识字段的值,并使用得到的当前标识字段的值更新最后连续标识信息;
[0032]其中,最后连续标识信息用于记录客户端收到的按所述链表关系保持连续的各消息中的最后一个消息对应的标识信息。
[0033]进一步地,还包括:
[0034]向服务端发送当前的最后连续标识信息;
[0035]如果收到来自服务端的离线封装消息集合,将所述离线封装消息集合中的各离线封装消息添加到所述第二存储区;并且,
[0036]根据链表关系分析所述第二存储区中在当前的最后连续标识信息对应的封装消息之后接收到的各封装消息,按所述链表关系得到所述之后接收到的各封装消息中与当前的最后连续标识信息对应的封装消息保持连续的最后一个封装消息对应的当前标识字段的值,并使用得到的当前标识字段的值更新最后连续标识信息。
[0037]另一方面,本专利技术实施例提供一种消息连续性识别装置,应用于服务端,包括:
[0038]消息接收单元,用于每次收到消息时将收到的消息作为当前消息,为所述当前消息生成唯一的标识信息;
[0039]消息封装单元,用于获取所述当前消息的前一消息的标识信息,并将所述当前消息、所述当前消息的标识信息和前一消息的标识信息分别对应作为封装消息的消息字段、当前标识字段和前一标识字段得到当前封装消息;
[0040]消息发送单元,用于将所述当前封装消息发送给客户端;
[0041]其中,所述前一消息是在收到的当前消息的前一次收到的消息;
[0042]相邻封装消息之间通过当前标识字段和前一标识字段构成链表关系。
[0043]进一步地,所述装置还包括:
[0044]服务端最新标识更新单元,用于使用所述当前消息的标识信息更新服务端的最新标识信息;
[0045]离线存储单元,用于将所述当前封装消息作为离线封装消息添加到第一存储区;
[0046]其中,所述最新标识信息用于记录服务端最新一次接收到的消息的标识信息;
[0047]所述装置还包括:
[0048]离线消息请求单元,用于收到来自所述客户端的最后连续标识信息;
[0049]离线消息获取单元,用于比较所述最后连续标识信息和所述最新标识信息,如果判断出所述客户端没有收到所述最新标识信息对应的消息,则根据所述最后连续标识信息、所述最新标识信息以及所述链表关系查询所述第一存储区中各离线封装消息的当前标识字段获得离线封装消息集合;
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息连续性识别方法,应用于服务端,其特征在于,包括:每次收到消息时将收到的消息作为当前消息,为所述当前消息生成唯一的标识信息;并且,获取所述当前消息的前一消息的标识信息,并将所述当前消息、所述当前消息的标识信息和前一消息的标识信息分别对应作为封装消息的消息字段、当前标识字段和前一标识字段得到当前封装消息;将所述当前封装消息发送给客户端;其中,所述前一消息是在收到当前消息的前一次收到的消息;相邻封装消息之间通过当前标识字段和前一标识字段构成链表关系。2.如权利要求1所述的消息连续性识别方法,其特征在于,在所述将所述当前消息、所述当前消息的标识信息和前一消息的标识信息分别作为封装消息的消息字段、当前标识字段和前一标识字段得到当前封装消息之后,还包括:使用所述当前消息的标识信息更新服务端的最新标识信息;将所述当前封装消息作为离线封装消息添加到第一存储区;其中,所述最新标识信息用于记录服务端最新一次接收到的消息的标识信息;所述方法还包括:收到来自所述客户端的最后连续标识信息;并且,比较所述最后连续标识信息和所述最新标识信息,如果判断出所述客户端没有收到所述最新标识信息对应的消息,则根据所述最后连续标识信息、所述最新标识信息以及所述链表关系查询所述第一存储区中各离线封装消息的当前标识字段获得离线封装消息集合;将所述离线封装消息集合发送给客户端;其中,最后连续标识信息用于记录客户端收到的按所述链表关系保持连续的各消息中的最后一个消息对应的标识信息;所述离线封装消息集合包括:在所述最后连续标识信息对应的消息之后服务端收到的至少一个消息分别对应的离线封装消息。3.如权利要求1所述的消息连续性识别方法,其特征在于,所述每次收到消息时将收到的消息作为当前消息,为所述当前消息生成唯一的标识信息,具体为:通过标识信息生成服务为每次收到的消息生成相应的标识信息;或者,使用收到消息时的服务端时间戳作为该消息的标识信息;或者,通过所述标识信息生成服务为每次收到的消息生成相应的标识信息,当所述标识信息生成服务异常时,自动切换为使用收到消息时的服务端时间戳作为该消息的标识信息。4.一种消息连续性识别方法,应用于客户端,其特征在于,包括:当收到来自服务端的当前封装消息,将所述当前封装消息添加到第二存储区,所述封装消息包括消息字段、当前标识字段和前一标识字段;相邻封装消息之间通过当前标识字段和前一标识字段构成链表关系;并且,根据链表关系分析所述第二存储区中在当前的最后连续标识信息对应的封装消息之后接收到的各封装消息,按所述链表关系得到所述之后接收到的各封装消息中与当前的最后连续标识信息对应的封装消息保持连续的最后一个封装消息对应的当前标识字段的值,并使用得到的当前标识字段的值更新最后连续标识信息;
其中,最后连续标识信息用于记录客户端收到的按所述链表关系保持连续的各消息中的最后一个消息对应的标识信息。5.如权利要求4所述的消息连续性识别方法,其特征在于,还包括:向服务端发送当前的最后连续标识信息;如果收到来自服务端的离线封装消息集合,将所述离线封装消息集合中的各离线封装消息添加到所述第二存储区;并且,根据链表关系分析所述第二存储区中在当前的最后连续标识信息对应的封装消息之后接收到的各封装消息,按所述链表关系得到所述之后接收到的各封装消息中与当前的最后连续标识信息对应的封装消息保持连续的最后一个封装消息对应的当前标识字段的值,并使用得到的当前标识字段的值更新最后连续标识信息。6.一种消息连续性识别装置,应用于服务端,其特征在于,包括:消息接收单元,用于每次收到消息时将收到的消息作为当前消息,为所述当前消息生成唯一的标识信息;消息封装单元,用于...

【专利技术属性】
技术研发人员:李岩
申请(专利权)人:微梦创科网络科技中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1