丢失消息补偿方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:36603058 阅读:22 留言:0更新日期:2023-02-04 18:20
本发明专利技术涉及即时通讯领域,公开了一种丢失消息补偿方法、装置、计算机设备及存储介质,其方法包括:定期检查本地丢失消息记录表是否包括丢失消息;若本地丢失消息记录表包含丢失消息,则向服务端获取与丢失消息匹配的更新消息;根据更新消息更新所述本地缓存消息。本发明专利技术通过定时检查本地丢失消息记录表,执行丢失消息的补偿,可以避免瞬时网络请求过高的问题;通过消息补偿,可以使用户接收到完整的消息记录。息记录。息记录。

【技术实现步骤摘要】
丢失消息补偿方法、装置、计算机设备及存储介质


[0001]本专利技术涉及即时通讯领域,尤其涉及一种丢失消息补偿方法、装置、计算机设备及存储介质。

技术介绍

[0002]现有技术中,即时聊天工具在拉取离线消息时,只拉取一定时间范围内的消息。若用户长时间未登录,或者在新设备登录时,无法接收在时间范围外的消息。而且,用户在查看本地聊天记录时,本地聊天记录可能存在消息丢失的问题。

技术实现思路

[0003]基于此,有必要针对上述技术问题,提供一种丢失消息补偿方法、装置、计算机设备及存储介质,以使用户可以接收到完整的消息记录。
[0004]一种丢失消息补偿方法,包括:
[0005]定期检查本地丢失消息记录表是否包括丢失消息;
[0006]若所述本地丢失消息记录表包含所述丢失消息,则向服务端获取与所述丢失消息匹配的更新消息;
[0007]根据所述更新消息更新所述本地缓存消息。
[0008]一种丢失消息补偿装置,包括:
[0009]定期检查模块,用于定期检查本地丢失消息记录表是否包括丢失消息;
[0010]获取更新消息模块,用于若所述本地丢失消息记录表包含所述丢失消息,则向服务端获取与所述丢失消息匹配的更新消息;
[0011]更新消息模块,用于根据所述更新消息更新所述本地缓存消息。
[0012]一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述丢失消息补偿方法。
[0013]一个或多个存储有计算机可读指令的可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如上述丢失消息补偿方法。
[0014]上述丢失消息补偿方法、装置、计算机设备及存储介质,通过定时检查本地丢失消息记录表,执行丢失消息的补偿,可以避免瞬时网络请求过高的问题;通过消息补偿,可以使用户接收到完整的消息记录。
附图说明
[0015]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0016]图1是本专利技术一实施例中丢失消息补偿方法的一应用环境示意图;
[0017]图2是本专利技术一实施例中丢失消息补偿方法的一流程示意图;
[0018]图3是本专利技术一实施例中丢失消息补偿装置的一结构示意图;
[0019]图4是本专利技术一实施例中计算机设备的一示意图。
具体实施方式
[0020]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0021]本实施例提供的丢失消息补偿方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0022]在一实施例中,如图2所示,提供一种丢失消息补偿方法,以该方法应用在图1中的服务端为例进行说明,包括如下步骤S40

S60。
[0023]S40、定期检查本地丢失消息记录表是否包括丢失消息;
[0024]S50、若所述本地丢失消息记录表包含所述丢失消息,则向服务端获取与所述丢失消息匹配的更新消息。
[0025]可理解地,可以设置一个定时器,定时检查本地丢失消息记录表是否包括丢失消息。定时器的时间间隔可以根据实际需要进行设置。若本地丢失消息记录表包含丢失消息,则向服务端获取与丢失消息匹配的更新消息。若本地丢失消息记录表包含丢失消息,则不需要获取更新消息。本地丢失消息记录表可以记录一个或多个丢失消息的标识。
[0026]在此处,不同设备(智能手机)的定时器的时间可以是不一样的,如手机A在01分请求更新,手机B在02分请求更新。这样避免瞬时的网络请求过高的情况。
[0027]S60、根据所述更新消息更新所述本地缓存消息。
[0028]可理解地,在获得更新信息之后,可以使用该更新信息对本地缓存消息。在更新完毕之后,用户可以看到更新后的本地缓存消息。
[0029]本实施例通过本地丢失消息记录表记录丢失消息,通过定时检查本地丢失消息记录表,执行丢失消息的补偿,可以避免瞬时网络请求过高的问题。
[0030]可选地,步骤S40之前,即所述定期检查本地丢失消息记录表是否包括丢失消息之前,还包括如下步骤S10

S30。
[0031]S10、在检测到消息补偿的触发事件时,向服务端发送基于所述触发事件生成的消息队列获取请求。
[0032]可理解地,触发事件包括但不限于收到好友申请消息、收到在先群通知的消息、消息发送成功、拉取个人聊天历史消息、拉取群组聊天历史消息、通过群ID拉群群丢失消息、首次连接。不同的触发事件,其生成的消息队列获取请求一般是不相同的。消息队列获取请求定义了消息队列的获取范围。
[0033]S20、接收服务端返回的用于响应所述消息队列获取请求的消息队列。
[0034]可理解地,消息队列指的是多条消息的简要信息。在一些情况下,简要信息可以是有长度限制的文本信息(如果某条信息超出长度限制,则截取前面部分的文本),也可以是验证信息,如图片或视频的Md5码。消息队列的作用在于验证本地缓存消息的完整性。
[0035]S30、根据所述消息队列检查本地缓存消息是否存在丢失消息,存在丢失消息时,将所述丢失消息的标识写入本地丢失消息记录表中。
[0036]可理解地,可以将消息队列与本地缓存消息进行比对,以检查是否存在丢失消息。在此处,丢失消息指的是存在于本地缓存缺失的消息。每一条消息都有唯一的标识,如可以是序列号。检查丢失消息的算法可以根据实际需要进行设置,如可以是冒泡排序、归并排序等。优选归并排序算法,该算法可以降低时间复杂度。
[0037]当消息队列存在本地缓存没有保存的丢失消息时,可以将该丢失消息的标识写入本地丢失消息记录表中。本地丢失消息记录表可以记录一个或多个丢失消息的标识。
[0038]本实施例在逻辑上将消息的丢失检查和补偿拉取解耦,只有socket通道在线获取的消息(即在线消息)进行遗漏检查的时候才会实时触发补偿拉取,其他情况都是通过既定的定时器定期检查缓存(本地丢失消息记录表)拉取,避免瞬时的网络请求过高的情况,提高代码的可维护性。而且,本实施例提供的丢失消息补偿方法,采用类似于触发器的方式触发执行检查遗漏、定时器执行拉取遗漏,业务代码不需要做额外的特殊处理。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种丢失消息补偿方法,其特征在于,包括:定期检查本地丢失消息记录表是否包括丢失消息;若所述本地丢失消息记录表包含所述丢失消息,则向服务端获取与所述丢失消息匹配的更新消息;根据所述更新消息更新所述本地缓存消息。2.如权利要求1所述的丢失消息补偿方法,其特征在于,所述定期检查本地丢失消息记录表是否包括丢失消息之前,还包括:在检测到消息补偿的触发事件时,向服务端发送基于所述触发事件生成的消息队列获取请求;接收服务端返回的用于响应所述消息队列获取请求的消息队列;根据所述消息队列检查本地缓存消息是否存在丢失消息,存在丢失消息时,将所述丢失消息的标识写入所述本地丢失消息记录表中。3.如权利要求2所述的丢失消息补偿方法,其特征在于,所述在检测到消息补偿的触发事件时,向服务端发送基于所述触发事件生成的消息队列获取请求,包括:在所述触发事件为拉取指定会话ID的历史消息时,获取处于会话窗口的最早消息;根据所述最早消息确定第一队列获取区间;根据所述第一队列获取区间生成所述消息队列获取请求。4.如权利要求2所述的丢失消息补偿方法,其特征在于,所述在检测到消息补偿的触发事件时,向服务端发送基于所述触发事件生成的消息队列获取请求,包括:在所述触发事件为收到在先群通知时,根据所述在先群通知确定第二队列获取区间;根据所述第二队列获取区间生成所述消息队列获取请求。5.如权利要求2所述的丢失消息补偿方法,其特征在于,所述根据所述消息队列检查本地缓存消息是否存在丢失消息,存在丢失消息时,将所述丢失消息写入本地丢失消息记录表中,包括:若本地缓存消息为个人消息缓存,则将消息队列的第一条消息与所述个人消息缓存的最新消息进行比对,生成个人比对结果;若所述个人比对结果为不相等,则检查所述消息队列的连续性,生成个...

【专利技术属性】
技术研发人员:张晓龙
申请(专利权)人:招商局金融科技有限公司
类型:发明
国别省市:

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

1