CN115297076B - 离线消息拉取方法、装置、计算机设备及存储介质 - Google Patents
离线消息拉取方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115297076B CN115297076B CN202210914954.8A CN202210914954A CN115297076B CN 115297076 B CN115297076 B CN 115297076B CN 202210914954 A CN202210914954 A CN 202210914954A CN 115297076 B CN115297076 B CN 115297076B
- Authority
- CN
- China
- Prior art keywords
- message
- offline
- pulling
- group
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000008520 organization Effects 0.000 claims abstract description 110
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000010586 diagram Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100440173 Mus musculus Clu gene Proteins 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及即时通信领域,公开了一种离线消息拉取方法、装置、计算机设备及存储介质,其方法包括:向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求;接收群组织接口返回的响应群组织更新请求的群组织信息,并根据群组织信息更新本地群组织信息;根据群组织信息向服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求;接收消息索引接口返回的响应消息索引更新请求的消息索引;根据本地会话信息和消息索引确定消息拉取措施,执行消息拉取措施,从服务端的消息拉取接口获取离线消息;根据离线消息更新本地会话信息。本发明可以减少消息的拉取时长。
Description
技术领域
本发明涉及即时通信领域,尤其涉及一种离线消息拉取方法、装置、计算机设备及存储介质。
背景技术
现有技术中,即时聊天工具在拉取离线消息时,拉取时间较长,若数据量较大,拉取时间可能在15秒钟以上。这是因为单次接口返回的数据量过大,导致网络流量和客户端数据库I/O瞬时增加,大大增加网络时延。
发明内容
基于此,有必要针对上述技术问题,提供一种消息拉取方法、装置、计算机设备及存储介质,以减少消息的拉取时长。
一种离线消息拉取方法,包括:
向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求;
接收所述群组织接口返回的响应所述群组织更新请求的群组织信息,并根据所述群组织信息更新本地群组织信息;所述群组织信息包括所述服务端实时生成的第二增量更新时间戳;
根据所述群组织信息向所述服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求;
接收所述消息索引接口返回的响应所述消息索引更新请求的消息索引,所述消息索引包括所述服务端实时生成的第四增量更新时间戳;
根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息;
根据所述离线消息更新所述本地会话信息。
一种离线消息拉取装置,包括:
发送群组织更新请求模块,用于向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求;
更新群组织信息模块,用于接收所述群组织接口返回的响应所述群组织更新请求的群组织信息,并根据所述群组织信息更新本地群组织信息;所述群组织信息包括所述服务端实时生成的第二增量更新时间戳;
发送消息索引更新请求模块,用于根据所述群组织信息向所述服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求;
接收消息索引模块,用于接收所述消息索引接口返回的响应所述消息索引更新请求的消息索引,所述消息索引包括所述服务端实时生成的第四增量更新时间戳;
获取离线消息模块,用于根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息;
本地会话更新模块,用于根据所述离线消息更新所述本地会话信息。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述离线消息拉取方法。
一个或多个存储有计算机可读指令的可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如上述离线消息拉取方法。
上述离线消息拉取方法、装置、计算机设备及存储介质,通过在服务端设置了不同的接口,接收不同的请求,各个接口相互解耦,提高代码的可维护性;将原有的单一接口改成多接口拉取,由于群组织接口、消息索引接口返回的消息信息量很小,返回速度快,而消息拉取接口则可以采用拉取,拉取效率由原来的秒级提高到毫秒级;将处理离线消息的部分算力分布到客户端,减少了服务端的性能压力;页面的响应可以做到逐步加载,对比原来等待过久的一次性加载,提高用户交互体验。经测试,本发明可以提高拉取离线消息的整体速度,由>15s提高到4s左右。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中离线消息拉取方法的一应用环境示意图;
图2是本发明一实施例中离线消息拉取方法的一流程示意图;
图3是本发明一实施例中离线消息拉取装置的一结构示意图;
图4是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供的离线消息拉取方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种离线消息拉取方法,以该方法应用在图1中的客户端为例进行说明,包括如下步骤S10-S60。
S10、向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求。
可理解地,客户端安装有即时通信程序。当即时通信程序打开(可以是热启动或冷启动)时,可以向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求。第一增量更新时间戳指的是上一次发送群组织更新请求时服务端返回的群组织信息所包含的时间戳。第一增量更新时间戳由服务端生成,表示最近一次群组织消息更新的时间。
其中,服务端专门设置了群组织接口,用于接收客户端发送的群组织更新请求。在一些示例中,群组织接口表示为:coco-server/v2/usergetGroupList。群组织更新请求包含如下参数:groupVersion(int):版本;updateTime(int):第一增量更新时间戳。
S20、接收所述群组织接口返回的响应所述群组织更新请求的群组织信息,并根据所述群组织信息更新本地群组织信息;所述群组织信息包括所述服务端实时生成的第二增量更新时间戳。
可理解地,客户端可以从群组织接口获取响应群组织更新请求的群组织信息,并根据群组织信息更新本地群组织信息。群组织信息包括如下参数:groups(array):群信息列表(仅包括群ID、群名称、群成员等基本信息);updateTime(int):第二增量更新时间戳。在此处,第二增量更新时间戳可用于生成下一次的群组织更新请求。
在一些示例中,群组织信息包括好友列表和群列表。
S30、根据所述群组织信息向所述服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求。
可理解地,在获得群组织信息之后,可以向服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求。第三增量更新时间戳指的是上一次发送消息索引更新请求时,服务端返回的消息索引更新请求所包含的时间戳。第三增量更新时间戳由服务端生成,表示最近一次消息索引更新的时间。
其中,服务端专门设置了消息索引接口,用于接收客户端发送的消息索引更新请求。在一些示例中,消息索引接口表示为:coco-server/msgupdateMsgIndex。消息索引更新请求包含如下参数:groupsMsgIndexList(array):本地群消息序列数组;p2pMsgIndex(int):本地个人最大序列;updateTime(int):第三增量更新时间戳。
S40、接收所述消息索引接口返回的响应所述消息索引更新请求的消息索引,所述消息索引包括所述服务端实时生成的第四增量更新时间戳。
可理解地,客户端可以从消息索引接口获取响应消息索引更新请求的消息索引信息,并根据消息索引信息更新本地索引信息。消息索引包括如下参数:groupMsgIndex(array):群组消息索引列表(用户态);p2pMsgIndex(object):个人消息索引;updateTime(int):第四增量更新时间戳。在此处,第四增量更新时间戳可用于生成下一次的消息索引更新请求。
S50、根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息。
可理解地,根据本地会话信息和消息索引的不同,可以选取不同的消息拉取措施,通过执行相应的消息拉取措施,从服务端的消息拉取接口获取离线消息。
例如,当本地会话信息为空白(即localMaxRcv==0),可采用预配置消息拉取措施。当本地会话信息不为空白时,则可以根据个人和群组采用不同的消息拉取措施。在一些示例中,消息拉取措施可由调度任务组实现。
其中,服务端专门设置了消息拉取接口,用于发送客户端请求的离线消息。在一些示例中,消息拉取接口表示为:coco-server/msgp2pHistory Messages,coco-server/msgp2gHistoryMessages。
在此处,由客户端确定消息拉取措施,可以减少服务端的性能压力。
S60、根据所述离线消息更新所述本地会话信息。
可理解地,在获得离线消息之后,可以对本地会话信息进行更新。
本实施例中,服务端设置了不同的接口,接收不同的请求,各个接口相互解耦,提高代码的可维护性;将原有的单一接口改成多接口拉取,由于群组织接口、消息索引接口返回的消息信息量很小,返回速度快,而消息拉取接口则可以采用拉取,拉取效率由原来的秒级提高到毫秒级;将处理离线消息的部分算力分布到客户端,减少了服务端的性能压力;页面的响应可以做到逐步加载,对比原来等待过久的一次性加载,提高用户交互体验。经测试,本实施例可以提高拉取离线消息的整体速度,由>15s提高到4s左右。
可选的,步骤S50,即所述根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息,包括:
S501、在本地个人最大序列字段为零时,获取预配置消息拉取措施;
S502、执行预配置消息拉取措施,从所述消息拉取接口获取第一离线消息;所述第一离线消息包括指定时间范围内的离线消息,且所述离线消息的条数不大于第一阈值。
可理解地,当本地会话信息为空白(即localMaxRcv==0),可采用预配置消息拉取措施。执行预配置消息拉取措施,从消息拉取接口获取第一离线消息。指定时间范围和第一阈值可以根据实际需要进行设置。
在一示例中,若localMaxRcv==0,则以startSeq(待拉取的第一条个人消息)=-1和endSeq(远端个人最大序列)=-1为入参先拉取第一离线消息,接口返回最近7天内的500条消息。
可选的,所述消息索引包括个人消息索引;
步骤S50,即所述根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息,还包括:
S511、从所述个人消息索引提取远端个人最大序列字段;
S512、在本地个人最大序列字段大于零时,根据所述本地个人最大序列字段和所述远端个人最大序列字段设置个人离线消息拉取区间,并根据所述个人离线消息拉取区间生成个人消息调度任务组;
S513、执行所述个人消息调度任务组,从所述消息拉取接口获取个人离线消息。
可理解地,可以从个人消息索引提取远端个人最大序列字段,在本地个人最大序列字段大于零时,根据本地个人最大序列字段(localMaxRcv)和远端个人最大序列字段(maxSeq)设置个人离线消息拉取区间,然后根据个人离线消息拉取区间生成个人消息调度任务组(job)。执行个人消息调度任务组,从消息拉取接口获取个人离线消息。
在此处,个人消息调度任务组负责管理本轮消息的多次批量任务的开始/结束、最大并发等,一个个人消息调度任务组对应多个调度任务。
本实施例通过个人消息调度任务组的方式获取个人离线信息,可以有效避免单一节点带来的网络流量和客户端I/O抖动,从而减少性能异常波动(CPU使用率突然升高)导致的手机发热问题。
可选的,所述个人消息调度任务组包括若干调度任务;
步骤S512,即所述根据所述本地个人最大序列字段和所述远端个人最大序列字段设置个人离线消息区间,并根据所述个人离线消息区间生成个人消息调度任务组,包括:
S5121、根据所述本地个人最大序列字段设置所述个人离线消息拉取区间的起始消息序号;
S5122、根据所述远端个人最大序列字段设置所述个人离线消息拉取区间的结束消息序号;
S5123、根据所述起始消息序号、所述结束消息序号以及第二阈值生成所述若干调度任务;所述调度任务中的消息数量小于所述第二阈值。
可理解地,个人离线消息拉取区间的起始消息序号可表示为:startSeq=localMaxRcv+1。结束消息序号可表示为:endSeq=maxSeq。第二阈值可表示为:defaultFetchMsgSize,即为默认单次可拉取的最大消息数量,例如可设置为199。
在确定起始消息序号、结束消息序号以及第二阈值之后,可以根据这些参数生成若干调度任务,每一调度任务负责一批次消息的获取。例如,起始消息序号为0001,结束消息序号为0299,第二阈值为199,则可以生成包含两个调度任务的个人消息调度任务组,其中,任务1用于获取序号0001~0199的消息;任务2用于获取序号0200~0299的消息。
需要注意的是,在执行个人消息调度任务组时,可以设置调度任务的最大并发数为1,也就是串行获取个人离线消息。
本实施例通过个人消息调度任务组的方式获取个人离线信息,可以有效避免单一节点带来的网络流量和客户端I/O抖动,从而减少性能异常波动(CPU使用率突然升高)导致的手机发热问题。
可选的,所述消息索引包括群组消息索引;
步骤S50,即所述根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息,包括:
S521、根据所述群组消息索引和所述本地会话信息确定群组离线消息拉取区间;
S522、根据所述群组离线消息拉取区间生成群组消息调度任务组;
S523、执行所述群组消息调度任务组,从所述消息拉取接口获取群组离线消息。
可理解地,可以根据群组消息索引和本地会话信息确定群组离线消息拉取区间。群组离线消息拉取区间包括startSeq(起始Rcv)和endSeq(结束Rcv)。
具体的,先创建需要拉取消息的群序列groupSeq组成的数组groupSeqs。具体的,可以先更新群的readRcv(已读消息)和maxRcv(最新消息)。
若符合以下情况,则可以计算需要远端拉取的消息startSeq(起始Rcv)和endSeq(结束Rcv)。第一种情况:需要强制拉取消息的群(第一优先级),如:存在有效变为无效的群。第二种情况:群有效,并且群信息的更新时间戳在服务器时间的七天之内(第二优先级)。
在获得群组离线消息拉取区间,可以参照生成个人消息调度任务组的方式生成群组消息调度任务组,在此不再赘述。
然后执行群组消息调度任务组,从消息拉取接口获取群组离线消息。
需要注意的是,在执行群组消息调度任务组时,可以设置调度任务的最大并发数为5,也就是并行获取群组离线消息。
本实施例通过群组消息调度任务组的方式获取群组离线信息,群组离线消息少量并发入库,减少瞬时I/O压力。
可选的,步骤S60之后,即所述根据所述离线消息更新本地会话信息之后,还包括:
S70、根据更新后的本地会话信息刷新UI层的会话列表和会话标识。
可理解地,对本地会话信息更新后,可以对UI层的会话列表进行更新,为存在更新内容的会话添加会话标识。在一示例中,会话标识可以是红点。
本实施例通过对UI层的及时更新,使用户可以及时查看更新后的消息。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种离线消息拉取装置,该离线消息拉取装置与上述实施例中离线消息拉取方法一一对应。如图3所示,该离线消息拉取装置包括发送群组织更新请求模块10、更新群组织信息模块20、发送消息索引更新请求模块30、接收消息索引模块40、获取离线消息模块50和本地会话更新模块60。各功能模块详细说明如下:
发送群组织更新请求模块10,用于向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求;
更新群组织信息模块20,用于接收所述群组织接口返回的响应所述群组织更新请求的群组织信息,并根据所述群组织信息更新本地群组织信息;所述群组织信息包括所述服务端实时生成的第二增量更新时间戳;
发送消息索引更新请求模块30,用于根据所述群组织信息向所述服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求;
接收消息索引模块40,用于接收所述消息索引接口返回的响应所述消息索引更新请求的消息索引,所述消息索引包括所述服务端实时生成的第四增量更新时间戳;
获取离线消息模块50,用于根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息;
本地会话更新模块60,用于根据所述离线消息更新所述本地会话信息。
可选的,获取离线消息模块50包括:
获取预配置措施单元,用于在本地个人最大序列字段为零时,获取预配置消息拉取措施;
获取第一离线消息单元,用于执行预配置消息拉取措施,从所述消息拉取接口获取第一离线消息;所述第一离线消息包括指定时间范围内的离线消息,且所述离线消息的条数不大于第一阈值。
可选的,所述消息索引包括个人消息索引;
获取离线消息模块50还包括:
提取个人最大序列单元,用于从所述个人消息索引提取远端个人最大序列字段;
生成个人调度组单元,用于在本地个人最大序列字段大于零时,根据所述本地个人最大序列字段和所述远端个人最大序列字段设置个人离线消息拉取区间,并根据所述个人离线消息拉取区间生成个人消息调度任务组;
拉取个人离线消息单元,用于执行所述个人消息调度任务组,从所述消息拉取接口获取个人离线消息。
可选的,所述调度任务包括若干调度任务;
生成个人调度组单元包括:
设置起始序号单元,用于根据所述本地个人最大序列字段设置所述个人离线消息拉取区间的起始消息序号;
设置结束序号单元,用于根据所述远端个人最大序列字段设置所述个人离线消息拉取区间的结束消息序号;
生成个人调度任务单元,用于根据所述起始消息序号、所述结束消息序号以及第二阈值生成所述若干个人调度任务;所述个人调度任务中的消息数量小于所述第二阈值。
可选的,所述消息索引包括群组消息索引;
获取离线消息模块50还包括:
确定群组拉取区间单元,用于根据所述群组消息索引和所述本地会话信息确定群组离线消息拉取区间;
生成群组调度组单元,用于根据所述群组离线消息拉取区间生成群组消息调度任务组;
获取群组离线消息单元,用于执行所述群组消息调度任务组,从所述消息拉取接口获取群组离线消息。
可选的,离线消息拉取装置还包括:
UI层更新模块,用于根据更新后的本地会话信息刷新UI层的会话列表和会话标识。
关于离线消息拉取装置的具体限定可以参见上文中对于离线消息拉取方法的限定,在此不再赘述。上述离线消息拉取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括可读存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令。该内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机可读指令被处理器执行时以实现一种离线消息拉取方法。本实施例所提供的可读存储介质包括非易失性可读存储介质和易失性可读存储介质。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时实现以下步骤:
向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求;
接收所述群组织接口返回的响应所述群组织更新请求的群组织信息,并根据所述群组织信息更新本地群组织信息;所述群组织信息包括所述服务端实时生成的第二增量更新时间戳;
根据所述群组织信息向所述服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求;
接收所述消息索引接口返回的响应所述消息索引更新请求的消息索引,所述消息索引包括所述服务端实时生成的第四增量更新时间戳;
根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息;
根据所述离线消息更新所述本地会话信息。
在一个实施例中,提供了一个或多个存储有计算机可读指令的计算机可读存储介质,本实施例所提供的可读存储介质包括非易失性可读存储介质和易失性可读存储介质。可读存储介质上存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时实现以下步骤:
向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求;
接收所述群组织接口返回的响应所述群组织更新请求的群组织信息,并根据所述群组织信息更新本地群组织信息;所述群组织信息包括所述服务端实时生成的第二增量更新时间戳;
根据所述群组织信息向所述服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求;
接收所述消息索引接口返回的响应所述消息索引更新请求的消息索引,所述消息索引包括所述服务端实时生成的第四增量更新时间戳;
根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息;
根据所述离线消息更新所述本地会话信息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性可读取存储介质或易失性可读存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种离线消息拉取方法,其特征在于,包括:
向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求;所述第一增量更新时间戳表示最近一次群组织消息更新的时间;
接收所述群组织接口返回的响应所述群组织更新请求的群组织信息,并根据所述群组织信息更新本地群组织信息;所述群组织信息包括所述服务端实时生成的第二增量更新时间戳;所述第二增量更新时间戳用于生成下一次的群组织更新请求;
根据所述群组织信息向所述服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求;所述第三增量更新时间戳表示最近一次消息索引更新的时间;
接收所述消息索引接口返回的响应所述消息索引更新请求的消息索引,所述消息索引包括所述服务端实时生成的第四增量更新时间戳;所述第四增量更新时间戳用于生成下一次的消息索引更新请求;
根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息;
根据所述离线消息更新所述本地会话信息。
2.如权利要求1所述的离线消息拉取方法,其特征在于,所述根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息,包括:
在本地个人最大序列字段为零时,获取预配置消息拉取措施;
执行预配置消息拉取措施,从所述消息拉取接口获取第一离线消息;所述第一离线消息包括指定时间范围内的离线消息,且所述离线消息的条数不大于第一阈值。
3.如权利要求1所述的离线消息拉取方法,其特征在于,所述消息索引包括个人消息索引;
所述根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息,还包括:
从所述个人消息索引提取远端个人最大序列字段;
在本地个人最大序列字段大于零时,根据所述本地个人最大序列字段和所述远端个人最大序列字段设置个人离线消息拉取区间,并根据所述个人离线消息拉取区间生成个人消息调度任务组;
执行所述个人消息调度任务组,从所述消息拉取接口获取个人离线消息。
4.如权利要求3所述的离线消息拉取方法,其特征在于,所述个人消息调度任务组包括一个或多个调度任务;
所述根据所述本地个人最大序列字段和所述远端个人最大序列字段设置个人离线消息区间,并根据所述个人离线消息区间生成个人消息调度任务组,包括:
根据所述本地个人最大序列字段设置所述个人离线消息拉取区间的起始消息序号;
根据所述远端个人最大序列字段设置所述个人离线消息拉取区间的结束消息序号;
根据所述起始消息序号、所述结束消息序号以及第二阈值生成所述一个或多个调度任务;所述调度任务中的消息数量小于所述第二阈值。
5.如权利要求1所述的离线消息拉取方法,其特征在于,所述消息索引包括群组消息索引;
所述根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息,包括:
根据所述群组消息索引和所述本地会话信息确定群组离线消息拉取区间;
根据所述群组离线消息拉取区间生成群组消息调度任务组;
执行所述群组消息调度任务组,从所述消息拉取接口获取群组离线消息。
6.如权利要求1所述的离线消息拉取方法,其特征在于,所述根据所述离线消息更新本地会话信息之后,还包括:
根据更新后的本地会话信息刷新UI层的会话列表和会话标识。
7.一种离线消息拉取装置,其特征在于,包括:
发送群组织更新请求模块,用于向服务端的群组织接口发送包含第一增量更新时间戳的群组织更新请求;所述第一增量更新时间戳表示最近一次群组织消息更新的时间;
更新群组织信息模块,用于接收所述群组织接口返回的响应所述群组织更新请求的群组织信息,并根据所述群组织信息更新本地群组织信息;所述群组织信息包括所述服务端实时生成的第二增量更新时间戳;所述第二增量更新时间戳用于生成下一次的群组织更新请求;
发送消息索引更新请求模块,用于根据所述群组织信息向所述服务端的消息索引接口发送包含第三增量更新时间戳的消息索引更新请求;所述第三增量更新时间戳表示最近一次消息索引更新的时间;
接收消息索引模块,用于接收所述消息索引接口返回的响应所述消息索引更新请求的消息索引,所述消息索引包括所述服务端实时生成的第四增量更新时间戳;所述第四增量更新时间戳用于生成下一次的消息索引更新请求;
获取离线消息模块,用于根据本地会话信息和所述消息索引确定消息拉取措施,执行所述消息拉取措施,从所述服务端的消息拉取接口获取离线消息;
本地会话更新模块,用于根据所述离线消息更新所述本地会话信息。
8.如权利要求7所述的离线消息拉取装置,其特征在于,所述获取离线消息模块包括:
获取预配置措施单元,用于在本地个人最大序列字段为零时,获取预配置消息拉取措施;
获取第一离线消息单元,用于执行预配置消息拉取措施,从所述消息拉取接口获取第一离线消息;所述第一离线消息包括指定时间范围内的离线消息,且所述离线消息的条数不大于第一阈值。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如权利要求1至6中任一项所述离线消息拉取方法。
10.一个或多个存储有计算机可读指令的可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至6中任一项所述离线消息拉取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210914954.8A CN115297076B (zh) | 2022-08-01 | 2022-08-01 | 离线消息拉取方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210914954.8A CN115297076B (zh) | 2022-08-01 | 2022-08-01 | 离线消息拉取方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115297076A CN115297076A (zh) | 2022-11-04 |
CN115297076B true CN115297076B (zh) | 2024-03-19 |
Family
ID=83825709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210914954.8A Active CN115297076B (zh) | 2022-08-01 | 2022-08-01 | 离线消息拉取方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115297076B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756417A (zh) * | 2019-01-04 | 2019-05-14 | 平安科技(深圳)有限公司 | 离线消息分发方法、服务器及存储介质 |
CN111857764A (zh) * | 2020-06-12 | 2020-10-30 | 浙江大华技术股份有限公司 | 离线数据更新方法、装置、设备和存储介质 |
CN112965834A (zh) * | 2019-01-31 | 2021-06-15 | 福建天泉教育科技有限公司 | 一种快速展示离线消息的方法及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086704B (zh) * | 2014-02-11 | 2022-03-22 | 阿里巴巴集团控股有限公司 | 一种即时通讯未读消息的同步方法和系统 |
-
2022
- 2022-08-01 CN CN202210914954.8A patent/CN115297076B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756417A (zh) * | 2019-01-04 | 2019-05-14 | 平安科技(深圳)有限公司 | 离线消息分发方法、服务器及存储介质 |
CN112965834A (zh) * | 2019-01-31 | 2021-06-15 | 福建天泉教育科技有限公司 | 一种快速展示离线消息的方法及终端 |
CN111857764A (zh) * | 2020-06-12 | 2020-10-30 | 浙江大华技术股份有限公司 | 离线数据更新方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115297076A (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108388479B (zh) | 延迟消息推送方法、装置、计算机设备及存储介质 | |
CN110620812B (zh) | 交互信息的推送方法、装置、计算机设备和存储介质 | |
CN111464615B (zh) | 请求处理方法、装置、服务器及存储介质 | |
CN111143462A (zh) | 数据导出的方法、装置、计算机设备和存储介质 | |
CN108446172B (zh) | 数据调取方法、装置、计算机设备和存储介质 | |
CN113742109B (zh) | 第三方服务对接方法、装置、设备及存储介质 | |
CN111666145A (zh) | 消息队列的消息处理方法、系统和计算机设备 | |
CN112437000A (zh) | 消息队列推送方法、装置、计算机设备及存储介质 | |
CN112839067A (zh) | 一种数据同步方法及装置 | |
CN110633306A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN110555068A (zh) | 数据导出方法和装置 | |
CN111614577A (zh) | 一种多通信任务管理方法、装置和计算机设备 | |
CN113157734B (zh) | 基于搜索框架的数据处理方法、装置、设备及存储介质 | |
CN112866339B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN115297076B (zh) | 离线消息拉取方法、装置、计算机设备及存储介质 | |
CN112632091B (zh) | 基于大数据的指标流实时计算方法、装置、设备及介质 | |
CN114138895A (zh) | 多数据源的数据同步方法、装置、计算机设备和存储介质 | |
CN114201462A (zh) | 表格数据的同步方法、装置、计算机设备和存储介质 | |
CN108834087B (zh) | 短信发送方法、装置、计算机设备和存储介质 | |
CN111385149A (zh) | 连接管理平台的物联网卡预警方法、装置、设备及介质 | |
CN110633207A (zh) | 基于灰度测试的操作请求处理方法、系统和计算机设备 | |
CN114553806B (zh) | 一种即时通讯的优化方法、装置、设备及存储介质 | |
CN113342493B (zh) | 任务执行方法、装置及计算机设备 | |
CN112351072B (zh) | 一种消息推送方法及终端 | |
CN114168876A (zh) | 页面显示方法、装置、计算机设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |