一种业务数据发送方法、接收方法、装置、系统及设备与流程

文档序号:35992826发布日期:2023-11-16 02:35阅读:38来源:国知局
一种业务数据发送方法与流程

本技术涉及计算机数据传输,尤其涉及一种业务数据传输的技术。


背景技术:

1、在计算机网络系统中,不同业务数据通常以字节流进行传输、处理,以实现业务功能或提供业务服务。在传输业务数据量较大,或者数据发送方和数据接收方之间需要频繁交互的应用场景中,通常都使用长连接协议建立传输通道。目前常用的长连接协议如websocket,http/https等,要么框架层次过多、多次封装,开销大,导致资源占用率高,要么提供的回调入口少,可配置性、可扩展性低,而且现有部分长连接协议还没有心跳保活功能,需要在业务应用层面自行实现。

2、随着移动互联网的快速发展,基于移动互联网的交互业务层出不穷,比如在移动设备上使用的各种社交app、聊天app,在实现数据交互过程中往往需要通过建立长连接来实现数据传输。

3、在移动设备繁多、业务场景越来越复杂的应用场景中,现有主要应用于计算机网络系统的长连接协议不太适用。


技术实现思路

1、本技术的目的是提供一种业务数据发送方法、接收方法、装置、系统及设备,用以至少部分解决现有技术的用于字节流数据传输的长连接协议的框架层次过多、多次封装、开销大,导致资源占用率高,或者提供的回调入口少,可配置性、可扩展性低的技术问题。

2、根据本技术的一方面的一个实施例,提供了一种业务数据发送方法,应用于数据发送方,其中,该方法包括:

3、创建并启动与数据接收方的mlcp连接;

4、基于心跳保活发送间隔,生成mlcp帧结构的心跳数据包,并基于业务数据发送请求,将待发送的业务数据封装成若干个mlcp帧结构的业务数据包;

5、基于第一数据长度,分别将心跳数据包和每个业务数据包拆分成若干数据段;

6、通过socket,向所述数据接收方顺序发送心跳数据包和每个业务数据包对应的若干数据段。

7、可选地,其中,mlcp包括:

8、mlcpsocket类,对应mlcp的层次架构中的socket操作层,用于实现socket连接管理,数据发送,数据接收;

9、mlcpsocketcontrol类,对应mlcp的层次架构中的mlcp控制层,继承所述mlcpsocket类,用于实现socket请求,mlcp长连接逻辑控制;

10、mlcp类,对应mlcp的层次架构中的mlcp接口层,继承所述mlcpsocketcontrol类,用于实现对外公共接口;

11、mlcpinterface类,用于提供回调函数接口;

12、mlcpcallback类,用于回调函数管理;

13、mlcplogutil类,用于提供日志工具。

14、可选地,其中,所述mlcp还包括:

15、mlcpnetutil类,用于提供网络管理;

16、mlcpsysutil类,用于提供系统管理;

17、mlcpverutil类,用于提供版本管理。

18、可选地,其中,所述mlcpsocket类包括:

19、socket连接创建接口,用于初始化socket连接,初始化数据缓冲区,调用数据接收接口来启动数据接收进程;

20、socket连接关闭接口,用于销毁数据缓冲区,销毁数据连接线程,销毁socket连接;

21、第一数据发送接口,用于将mlcp帧结构的数据包拆分成若干数据段,通过socket顺序发送mlcp帧结构的数据包对应的若干数据段;

22、数据接收接口,用于通过socket顺序接收mlcp帧结构的数据包对应的若干数据段,将数据段写入数据缓冲区;

23、数据缓冲区管理接口,用于初始化数据缓冲区,写入数据缓冲区,读取数据缓冲区,获取数据缓冲区长度,清空数据缓冲区。

24、可选地,其中,所述socket连接创建接口、所述socket连接关闭接口、所述第一数据发送接口和所述数据接收接口还用于:

25、异常捕获及日志记录。

26、可选地,其中,所述mlcpsocketcontrol类包括:

27、第一初始化接口,用于设置连接名称,上下文对象,日志开关;

28、第一设置回调接口,用于初始化mlcpcallback类,调用所述mlcpcallback类的设置回调接口;

29、启动连接接口,用于设置连接url、端口、心跳保活时间间隔、断线重连间隔等参数,调用所述socket连接创建接口来创建mlcp连接,开启读取线程来从数据缓冲区读取数据,回调接口来返回数据,调用心跳保活接口来开启心跳保活线程,断线重连;

30、心跳保活接口,用于发送心跳保活数据包,断线重连;

31、重连接口,用于调用所述socket连接关闭接口来关闭mlcp连接,调用所述启动连接接口来启动mlcp连接;

32、第二数据发送接口,用于回调接口,调用所述第一数据发送接口来发送数据,断线重连;

33、第一关闭连接接口,用于调用所述数据缓冲区管理接口来清空数据缓冲区,调用所述socket连接关闭接口来关闭mlcp连接,销毁数据读取线程;

34、第一获取连接状态接口,用于返回mlcp连接状态;

35、第一清空数据接口,用于调用所述数据缓冲区管理接口来清空数据缓冲区。

36、可选地,其中,所述启动连接接口、所述心跳保活接口、所述重连接口、所述第二数据发送接口和所述第一关闭连接接口还用于:

37、异常捕获及日志记录。

38、可选地,其中,所述mlcp类包括:

39、第二初始化接口,用于调用所述第一初始化接口;

40、第二设置回调接口,用于调用所述第一设置回调接口;

41、连接接口,用于调用所述启动连接接口;

42、发送数据接口,用于调用所述第二数据发送接口;

43、第二获取连接状态接口,用于调用所述第一获取连接状态接口;

44、第二清空数据接口,用于调用所述第一清空数据接口;

45、第二关闭连接接口,用于调用所述第一关闭连接接口。

46、可选地,其中,所述mlcpcallback类包括:

47、第三设置回调接口,用于设置回调接口,以接收mlcpinterface类的参数;

48、回调接口,用于调用mlcpinterface类的回调函数,以传入业务应用类型、mlcp实例名、连接状态和业务数据,或者回传这些参数给业务应用。

49、可选地,其中,所述mlcpinterface类包括:

50、回调函数,其中,所述回调函数的参数包括业务应用类型、mlcp实例名、连接状态和上下文对象。

51、可选地,其中,所述mlcplogutil类包括:

52、管理日志开关接口,用于设置日志开关状态,获取日志开关状态;

53、记录信息日志接口,用于打印信息类型日志,调用保存日志到文件接口来将信息类型日志保存到文件;

54、记录调试日志接口,用于打印调试类型日志,调用保存日志到文件接口来将调试类型日志保存到文件;

55、记录警告日志接口,用于打印警告类型日志,调用保存日志到文件接口来将警告类型日志保存到文件;

56、记录异常日志接口,用于打印异常类型日志,调用保存日志到文件接口来将异常类型日志保存到文件;

57、保存日志到文件接口,用于创建目录,创建文件,以及写入文件;

58、删除日志文件接口,用于获取过期日志文件并删除。

59、可选地,其中,所述创建并启动与数据接收方的mlcp连接包括:

60、使用mlcp类,设置第一核心参数,其中,所述第一核心参数包括:上下文对象、mlcp实例名、日志开关;

61、使用mlcpsocketcontrol类和mlcpinterface类,设置回调函数和第二核心参数,其中,所述回调函数的参数包括当前mlcp实例名、连接状态和上下文对象,所述第二核心参数包括:连接方url、端口、心跳保活发送间隔、断线重连间隔、数据缓冲区大小;

62、根据所述第二核心参数,创建并启动mlcp连接。

63、可选地,其中,若与数据接收方的mlcp连接失败,所述方法还包括:

64、基于断线重连间隔,重新启动与所述数据接收方的mlcp连接。

65、可选地,其中,所述mlcpnetutil类包括:

66、获取网络连接类型接口,用于获取网络类型;

67、获取网络连接状态接口,用于调用系统底层接口来判断网络状态,调用所述获取网络连接类型接口来获取网络类型。

68、可选地,其中,所述mlcpsysutil类包括:

69、获取ip地址接口;

70、获取sim卡状态接口;

71、第一数据类型转换接口,用于int转换成byte数组;

72、第二数据类型转换接口,用于byte数组转换成int;

73、第三数据类型转换接口,用于输入流转换成byte数组;

74、byte数组截取接口,用于byte数组截取操作;

75、byte数组拼接接口,用于byte数组拼接操作。

76、可选地,其中,所述mlcpverutil类包括:

77、版本号获取接口,用于获取当前使用的mlcp的版本号。

78、可选地,其中,所述mlcp帧结构包括:

79、压缩方式字段,加密方式字段,总帧数字段,当前帧字段,密钥字段,有效载荷长度位宽字段,有效载荷长度字段,有效载荷字段。

80、可选地,其中,在将心跳数据包或每个业务数据包拆分成若干数据段时,若最后实际剩余数据的长度小于所述第一数据长度,则最后一个数据段长度为实际剩余数据的长度。

81、根据本技术的一方面的另一个实施例,提供了一种业务数据接收的方法,应用于数据接收方,其中,该方法包括:

82、创建并启动与数据发送方的mlcp连接;

83、初始化数据缓冲区,通过socket,接收所述数据发送方顺序发送的数据,并基于第一数据读取间隔,按照第二数据长度读取数据,得到数据段并写入所述数据缓冲区;

84、基于第二数据读取间隔,从所述数据缓冲区读取若干数据段,并组装成mlcp帧结构的数据包,其中,所述数据包是心跳保活数据包或者业务数据包;

85、基于mlcp帧结构的业务数据包,获取业务数据。

86、可选地,该方法还包括:

87、当从所述数据缓冲区成功读取数据段后,从所述数据缓冲区删除所述数据段。

88、可选地,该方法还包括:

89、当所述数据缓冲区中的数据段全部成功读取且没有新的数据段写入时,清空所述数据缓冲区。

90、根据本技术的另一方面的一个实施例,提供了一种业务数据发送装置,部署于数据发送方,其中,该装置包括:

91、第一模块,用于创建并启动与数据接收方的mlcp连接;

92、第二模块,用于基于心跳保活发送间隔,生成mlcp帧结构的心跳数据包,并基于业务数据发送请求,将待发送的业务数据封装成若干个mlcp帧结构的业务数据包;

93、第三模块,用于基于第一数据长度,分别将心跳数据包和每个业务数据包拆分成若干数据段包;

94、第四模块,用于通过socket,向所述数据接收方顺序发送心跳数据包和每个业务数据包对应的若干数据段。

95、根据本技术的另一方面的另一个实施例,提供了一种业务数据接收装置,部署于数据接收方,其中,该装置包括:

96、第五模块,用于创建并启动与数据发送方的mlcp连接;

97、第六模块,用于初始化数据缓冲区,通过socket,接收所述数据发送方顺序发送的数据,并基于第一数据读取间隔,按照第二数据长度读取数据,得到数据段并写入所述数据缓冲区;

98、第七模块,用于基于第二数据读取间隔,从所述数据缓冲区读取若干数据段,并组装成mlcp帧结构的数据包,其中,所述数据包是心跳保活数据包或者业务数据包;

99、第九模块,用于基于mlcp帧结构的业务数据包,获取业务数据。

100、根据本技术的又一方面的一个实施例,提供了一种业务数据传输系统,其中,该系统包括:

101、数据发送方,用于创建并启动与数据接收方的mlcp连接,以及基于心跳保活发送间隔,生成mlcp帧结构的心跳数据包,并基于业务数据发送请求,将待发送的业务数据封装成若干个mlcp帧结构的业务数据包,基于第一数据长度,分别将心跳数据包和每个业务数据包拆分成若干数据段包,以及通过socket,向所述数据接收方顺序发送心跳数据包和每个业务数据包对应的若干数据段;

102、数据接收方,用于创建并启动与数据发送方的mlcp连接,初始化数据缓冲区,通过socket,接收所述数据发送方顺序发送的数据,并基于第一数据读取间隔,按照第二数据长度读取数据,得到数据段并写入所述数据缓冲区,以及基于第二数据读取间隔,从所述数据缓冲区读取若干数据段,并组装成mlcp帧结构的数据包,其中,所述数据包是心跳保活数据包或者业务数据包,基于mlcp帧结构的业务数据包,获取业务数据。

103、与现有技术相比,本技术提供了一种业务数据发送方法、接收方法、装置、系统及设备,其方法包括:在数据发送方,创建并启动与数据接收方的mlcp连接;基于心跳保活发送间隔,生成mlcp帧结构的心跳数据包,并基于业务数据发送请求,将待发送的业务数据封装成若干个mlcp帧结构的业务数据包;基于第一数据长度,分别将心跳数据包和每个业务数据包拆分成若干数据段;通过socket,向所述数据接收方顺序发送心跳数据包和每个业务数据包对应的若干数据段。在数据接收方,创建并启动与数据发送方的mlcp连接,初始化数据缓冲区,通过socket,接收所述数据发送方顺序发送的数据,并基于第一数据读取间隔,按照第二数据长度读取数据,得到数据段并写入所述数据缓冲区,以及基于第二数据读取间隔,从所述数据缓冲区读取若干数据段,并组装成mlcp帧结构的数据包,其中,所述数据包是心跳保活数据包或者业务数据包,基于mlcp帧结构的业务数据包,获取业务数据。通过该方法,在数据收发双方之间建立mlcp长连接,灵活将业务数据拆分成自定义数据段传输,提高了数据封装的灵活性和带宽利用率,提升了传输效率,并且框架层次少,代码轻量化,降低了cpu、内存等资源开销。

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