一种网络延时状态下的消息处理方法技术

技术编号:39571151 阅读:7 留言:0更新日期:2023-12-03 19:22
本发明专利技术公开了一种网络延时状态下的消息处理方法

【技术实现步骤摘要】
一种网络延时状态下的消息处理方法、系统、设备及介质


[0001]本专利技术涉及网络信息处理领域,具体涉及一种网络延时状态下的消息处理方法

系统

设备及介质


技术介绍

[0002]目前,客户端或服务端发送请求消息一般都是队列处理,程序接收到的消息按先后顺序一个一个推入临时消息存储容器中,然后在处理线程中按消息推入顺序提取处理,消息处理顺序就是先接收到先处理

在实际应用场景中,存在许多不可预估的网络问题,如网络抖动导致排队延迟,使得需要按顺序处理的先后两条消息所处在不同的网络分组发送,先后两条消息之间存在网络延迟,导致后处理的消息会比需要先处理的消息更快到达,使得两条消息的处理顺序违反了程序设计逻辑,造成系统请求无效或错误等情况


技术实现思路

[0003]为了克服现有技术的不足,本专利技术的目的在于提供一种网络延时状态下的消息处理方法

系统

设备及存储介质,可有效防止在多链路网络下因网络延时导致的请求无效或错误情况

[0004]本专利技术的目的采用如下技术方案实现:
[0005]一种网络延时状态下的消息处理方法,包括:
[0006]接收客户端发送的请求消息,所述请求消息中包含消息计数值;其中,所述客户端按照所述请求消息的发送顺序对所述消息计数值进行递增
/
递减;
[0007]解析所述请求消息的所述消息计数值,对所述消息计数值进行处理顺序判断并按照所述消息计数值的递增
/
递减顺序依次处理已送达的所述请求消息

[0008]进一步地,每次对任一所述请求消息进行处理后,还包括:
[0009]读取已处理的所述请求消息的所述消息计数值并将其回复至所述客户端

[0010]进一步地,对所述消息计数值进行处理顺序判断的方法为:
[0011]将当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值进行比较,若当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值连续且递增,或连续且递减,则对当前需要的所述请求消息进行处理

[0012]进一步地,对所述消息计数值进行处理顺序判断的过程中,若当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值不连续,则暂停当前所述请求消息的处理,并继续对下一送达的所述请求消息进行处理顺序判断,直至接收到连续且递增,或连续且递减的所述消息计数值的所述请求消息才对其进行消息处理

[0013]进一步地,暂停处理所述请求消息过程中,记录暂停等待时间,若暂停等待时间超过预设时间,则向客户端返回错误回复

[0014]进一步地,若接收到重发的所述请求消息,重新将重发的所述请求消息以及已经发送但正在排队处理的请求消息进行处理顺序判断;其中,重发的所述请求消息是由所述客户端接收到返回的错误回复时根据发送失败的所述请求消息进行发出,并对重发的所述请求消息的所述消息计数值进行更新

[0015]进一步地,所述请求消息的计数极限值由所述客户端的消息并发量设定,若任一所述请求消息的所述消息计数值达到设定的计数极限值,则对所述消息计数值重新循环计数

[0016]此外,还提供一种网络延时状态下的消息处理系统,执行如上述的网络延时状态下的消息处理方法,所述系统包括:
[0017]网络模块,用于接收客户端发送的请求消息,所述请求消息中包含消息计数值;其中,所述客户端按照所述请求消息的发送顺序对所述消息计数值进行递增
/
递减;
[0018]消息预处理模块,用于解析所述请求消息的所述消息计数值,对所述消息计数值进行处理顺序判断;
[0019]消息处理模块,用于根据所述消息计数值的递增
/
递减顺序依次处理已送达的所述请求消息

[0020]此外,还提供一种电子设备,其特征在于,包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上述的网络延时状态下的消息处理方法

[0021]此外,还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行如上述的网络延时状态下的消息处理方法

[0022]相比现有技术,本专利技术的有益效果在于:
[0023](1)
本专利技术服务器对请求消息的消息计数值进行处理顺序判断,并按照消息计数值的顺序依次处理已送达的请求消息;其中,服务器清楚消息处理顺序,让即使晚到的消息也可先处理;该方法可应用于消息并发量大且有消息先后处理顺序的实际应用环境中,有效防止在多链路网络下因网络延时导致的请求无效或错误的情况;
[0024](2)
将已处理的请求消息的消息计数值回复至客户端中,使得客户端在短时间下发送多个相同的请求的情况下也可清楚知道服务器的消息处理进度

附图说明
[0025]图1为本专利技术网络延时状态下的消息处理方法的流程示意图;
[0026]图2为本专利技术客户端与服务器之间的消息传输示意图

具体实施方式
[0027]下面,结合附图以及具体实施方式,对本专利技术做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例

[0028]实施例一
[0029]本实施例提供一种网络延时状态下的消息处理方法,本方法通过在客户端发送端
的消息头添加计数器,其目的是为了让服务器端根据计数值确定请求消息的正确顺序,按照顺序处理请求,特别是应用于多个客户端且使用
UDP
协议发送消息;由于
UDP
协议不能提供数据排序和校验功能,以及它没有确认接收方是否收到数据的机制,有可能会出现消息数据丢失的情况

而采用本实施例方法可以让服务器知道中间有没有数据丢失,且能让客户端也知道自己发的有没有丢失,及时安排重发,提高消息处理准确率

[0030]本实施例完成消息处理,需预先将客户端与服务器之间建立通信连接,客户端可向服务器发送请求消息,而服务器也可向客户端返回消息处理结果

如图1所示,本实施例服务器所执行的消息处理方法具体包括如下步骤:
[0031]步骤
S1
:接收客户端发送的请求消息,所述请求消息中包含消息计数值;其中,所述客户端按照所述请求消息的发送顺序对所述消息计数值进行递增
/
递减;
[0032]步骤
S2
:解析所述请求消息的所述消息计数值,对所述消息计数值进行处理顺序判断并按本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种网络延时状态下的消息处理方法,其特征在于,包括:接收客户端发送的请求消息,所述请求消息中包含消息计数值;其中,所述客户端按照所述请求消息的发送顺序对所述消息计数值进行递增
/
递减;解析所述请求消息的所述消息计数值,对所述消息计数值进行处理顺序判断并按照所述消息计数值的递增
/
递减顺序依次处理已送达的所述请求消息
。2.
根据权利要求1所述的网络延时状态下的消息处理方法,其特征在于,每次对任一所述请求消息进行处理后,还包括:读取已处理的所述请求消息的所述消息计数值并将其回复至所述客户端
。3.
根据权利要求1所述的网络延时状态下的消息处理方法,其特征在于,对所述消息计数值进行处理顺序判断的方法为:将当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值进行比较,若当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值连续且递增,或连续且递减,则对当前需要的所述请求消息进行处理
。4.
根据权利要求3所述的网络延时状态下的消息处理方法,其特征在于,对所述消息计数值进行处理顺序判断的过程中,若当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值不连续,则暂停当前所述请求消息的处理,并继续对下一送达的所述请求消息进行处理顺序判断,直至接收到连续且递增,或连续且递减的所述消息计数值的所述请求消息才对其进行消息处理
。5.
根据权利要求4所述的网络延时状态下的消息处理方法,其特征在于,暂停处理所述请求消息过程中,记录暂停等待时间,若暂停等待时间超过预设时间,则向客户端返回错误回复
。...

【专利技术属性】
技术研发人员:何仲鹏张常华林弟
申请(专利权)人:广东保伦电子股份有限公司
类型:发明
国别省市:

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

1