消息传输方法、系统、设备及存储介质与流程

文档序号:37551845发布日期:2024-04-08 14:01阅读:11来源:国知局
消息传输方法、系统、设备及存储介质与流程

所属的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。图12是本发明电子设备的结构示意图。下面参照图12来描述根据本发明的这种实施方式的电子设备1200。图12显示的电子设备1200仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图12所示,电子设备1200以通用计算设备的形式表现。电子设备1200的组件可以包括但不限于:至少一个处理单元1210、至少一个存储单元1220、连接不同平台组件(包括存储单元1220和处理单元1210)的总线1230、显示单元1240等。其中,存储单元存储有程序代码,程序代码可以被处理单元1210执行,使得处理单元1210执行本说明书消息传输方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元1210可以执行如图5-图8任一实施例所示的步骤。存储单元1220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)1221和/或高速缓存存储单元1222,还可以进一步包括只读存储单元(rom)1223。存储单元1220还可以包括具有一组(至少一个)程序模块1225的程序/实用工具1224,这样的程序模块1225包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。总线1230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。电子设备1200也可以与一个或多个外部设备120(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1200交互的设备通信,和/或与使得该电子设备1200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1250进行。并且,电子设备1200还可以通过网络适配器1260与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器1260可以通过总线1230与电子设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储平台等。本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现消息传输方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述消息传输方法部分中描述的根据本发明各种示例性实施方式的步骤。如上所示,该实施例的计算机可读存储介质的程序在执行时,能够通过消息事务层检测网络连接层是否发生切换而重发请求类消息,并不根据是否传输超时未收到回复而重发消息,这不仅解决因网络切换导致数据丢失的技术问题,确保消息传输可靠性,还减少了网络连接层负荷。同时,本方法不会对业务逻辑层造成影响。图13是本发明的计算机可读存储介质的结构示意图。参考图13所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品1300,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程序程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。综上,本发明的消息传输方法、系统、设备及存储介质,能够通过消息事务层检测网络连接层是否发生切换而重发请求类消息,并不根据是否传输超时未收到回复而重发消息,这不仅解决因网络切换导致数据丢失的技术问题,确保消息传输可靠性,还减少了网络连接层负荷。同时,本方法不会对业务逻辑层造成影响。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。


背景技术:

1、在相关技术中,客户端与服务器之间通过传输控制协议tcp(transmissioncontrol protocol)/互联网络协议ip(internet protocol,)进行消息传输。其中,tcp是一种面向连接的可靠传输方式,tcp通过确认机制、超时重传机制、数据包编号机制、流量控制、拥塞控制、错误检测和恢复等,确保数据的完整性和准确性,从而提供可靠的数据传输服务。

2、但是,在某些场景中,由于网络切换(比如wifi信号与蜂窝移动信号互相切换),会导致原有连接断开。在网络切换过程中,新的网络连接尚未完全建立,而数据仍在原网络中传输。如果此时接收端设备换到新网络,但数据包还没有到达接收端设备,那么这些数据包就可能丢失。

3、如何解决因网络切换导致数据丢失的技术问题,是业界考虑的课题。

4、需要说明的是,上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现思路

1、针对现有技术中的问题,本发明的目的在于提供消息传输方法、系统、设备及存储介质,克服了现有技术中因网络切换导致数据丢失的技术问题。

2、本公开实施例提供一种消息传输方法,消息传输方法适用于第一应用层节点,第一应用层节点中包括业务连接层、网络连接层和部署在业务连接层与网络连接层之间的消息事务层;

3、消息传输方法具体应用于消息事务层,包括:

4、检测网络连接层当前是否发生网络切换;

5、若是,从请求消息列表中提取未收到回复的请求类消息,将未收到回复的请求类消息通过切换后网络重新发送给第二应用层节点。

6、在一些实施例中,检测网络连接层当前是否发生网络切换,包括:

7、在从业务逻辑层接收到待发送的第一消息的情况下,检测网络连接层当前是否发生网络切换,以将第一消息和未收到回复的请求类消息通过切换后网络重新发送给第二应用层节点。

8、在一些实施例中,消息传输方法还包括:

9、在第一消息为请求类消息的情况下,将带有事务标识的第一消息放入请求消息列表中。

10、在一些实施例中,消息传输方法还包括:

11、在所述第一消息为请求类消息的情况下,在事务管理表中创建基于事务标识和所述请求类消息所对应事务状态的事务,并将带有所述事务标识的所述第一消息放入所述请求消息列表中;

12、在所述第一消息为回复类消息的情况下,从所述第一消息中获取相应事务标识,根据所述相应事务标识在所述事务管理表中查找对应事务,将所述对应事务的事务状态从所述请求类消息所对应事务状态更新为所述回复类消息对应的完成状态,保存所述回复类消息并启动超时定时器;

13、在所述超时定时器触发时,再将所述对应事务的事务状态由所述完成状态转换成所述终结状态,并在所述事务管理表中删除所述对应事务。

14、在一些实施例中,检测网络连接层当前是否发生网络切换,包括:

15、在从网络连接层接收到第二消息的情况下,检测网络连接层当前是否发生网络切换。

16、在一些实施例中,消息传输方法还包括:所述消息事务层包括事务管理模块和事务运行单元;所述消息传输方法还包括:

17、在所述第二消息为请求类消息的情况下,所述事务管理模块从所述第二消息中获取对应的事务标识,并根据所述事务标识在所述事务运行单元中查找相应事务及其事务状态,根据所述相应事务的事务状态判断所述相应事务是否具有已回复消息;

18、若是,获取所述已回复消息并将所述已回复消息通过所述切换后网络重新发送给第二应用层节点;

19、若否,则将所述第二消息回调给所述业务逻辑层。

20、在一些实施例中,消息传输方法还包括:

21、在所述第二消息为请求类消息的情况下,所述事务管理模块根据所述事务标识在所述事务管理表中未查找到相应事务时,在所述事务管理表中创建基于事务标识和所述请求类消息所对应事务状态的事务。

22、在一些实施例中,消息传输方法还包括:

23、在所述第二消息为回复类消息并在事务管理表中查找到所述第二消息的事务标识的情况下,将所述第二消息回调给所述业务逻辑层并在所述事务管理表中销毁所述第二消息对应的事务。

24、本公开实施例还提供一种消息传输系统,消息传输系统适用于第一应用层节点,第一应用层节点中包括业务连接层、网络连接层和部署在业务连接层与网络连接层之间的消息事务层;

25、消息传输系统具体应用于消息事务层,包括:

26、检测模块,检测网络连接层当前是否发生网络切换;

27、重发模块,若是,从请求消息列表中提取未收到回复的请求类消息,将未收到回复的请求类消息通过切换后网络重新发送给第二应用层节点。

28、本发明的实施例还提供一种电子设备,包括:

29、处理器;

30、存储器,其中存储有处理器的可执行指令;

31、其中,处理器配置为经由执行可执行指令来执行上述消息传输方法的步骤。

32、本发明的实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现上述消息传输方法的步骤。

33、本发明的消息传输方法、系统、设备及存储介质,能够通过消息事务层检测网络连接层是否发生切换而重发请求类消息,并不根据是否传输超时未收到回复而重发消息,这不仅解决因网络切换导致数据丢失的技术问题,确保消息传输可靠性,还减少了网络连接层负荷。同时,本方法不会对业务逻辑层造成影响。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1