一种业务数据发送方法技术

技术编号:39396548 阅读:11 留言:0更新日期:2023-11-19 15:51
本申请提供了一种业务数据发送方法

【技术实现步骤摘要】
一种业务数据发送方法、接收方法、装置、系统及设备


[0001]本申请涉及计算机数据传输
,尤其涉及一种业务数据传输的技术


技术介绍

[0002]在计算机网络系统中,不同业务数据通常以字节流进行传输

处理,以实现业务功能或提供业务服务

在传输业务数据量较大,或者数据发送方和数据接收方之间需要频繁交互的应用场景中,通常都使用长连接协议建立传输通道

目前常用的长连接协议如
WebSocket

HTTP/HTTPS
等,要么框架层次过多

多次封装,开销大,导致资源占用率高,要么提供的回调入口少,可配置性

可扩展性低,而且现有部分长连接协议还没有心跳保活功能,需要在业务应用层面自行实现

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

[0004]在移动设备繁多

业务场景越来越复杂的应用场景中,现有主要应用于计算机网络系统的长连接协议不太适用


技术实现思路

[0005]本申请的目的是提供一种业务数据发送方法

接收方法

装置

系统及设备,用以至少部分解决现有技术的用于字节流数据传输的长连接协议的框架层次过多

多次封装

开销大,导致资源占用率高,或者提供的回调入口少,可配置性

可扩展性低的技术问题

[0006]根据本申请的一方面的一个实施例,提供了一种业务数据发送方法,应用于数据发送方,其中,该方法包括:
[0007]创建并启动与数据接收方的
MLCP
连接;
[0008]基于心跳保活发送间隔,生成
MLCP
帧结构的心跳数据包,并基于业务数据发送请求,将待发送的业务数据封装成若干个
MLCP
帧结构的业务数据包;
[0009]基于第一数据长度,分别将心跳数据包和每个业务数据包拆分成若干数据段;
[0010]通过
Socket
,向所述数据接收方顺序发送心跳数据包和每个业务数据包对应的若干数据段

[0011]可选地,其中,
MLCP
包括:
[0012]MLCPSocket
类,对应
MLCP
的层次架构中的
Socket
操作层,用于实现
Socket
连接管理,数据发送,数据接收;
[0013]MLCPSocketControl
类,对应
MLCP
的层次架构中的
MLCP
控制层,继承所述
MLCPSocket
类,用于实现
Socket
请求,
MLCP
长连接逻辑控制;
[0014]MLCP
类,对应
MLCP
的层次架构中的
MLCP
接口层,继承所述
MLCPSocketControl
类,用于实现对外公共接口;
[0015]MLCPInterface
类,用于提供回调函数接口;
[0016]MLCPCallBack
类,用于回调函数管理;
[0017]MLCPLogUtil
类,用于提供日志工具

[0018]可选地,其中,所述
MLCP
还包括:
[0019]MLCPNetUtil
类,用于提供网络管理;
[0020]MLCPSysUtil
类,用于提供系统管理;
[0021]MLCPVerUtil
类,用于提供版本管理

[0022]可选地,其中,所述
MLCPSocket
类包括:
[0023]Socket
连接创建接口,用于初始化
Socket
连接,初始化数据缓冲区,调用数据接收接口来启动数据接收进程;
[0024]Socket
连接关闭接口,用于销毁数据缓冲区,销毁数据连接线程,销毁
Socket
连接;
[0025]第一数据发送接口,用于将
MLCP
帧结构的数据包拆分成若干数据段,通过
Socket
顺序发送
MLCP
帧结构的数据包对应的若干数据段;
[0026]数据接收接口,用于通过
Socket
顺序接收
MLCP
帧结构的数据包对应的若干数据段,将数据段写入数据缓冲区;
[0027]数据缓冲区管理接口,用于初始化数据缓冲区,写入数据缓冲区,读取数据缓冲区,获取数据缓冲区长度,清空数据缓冲区

[0028]可选地,其中,所述
Socket
连接创建接口

所述
Socket
连接关闭接口

所述第一数据发送接口和所述数据接收接口还用于:
[0029]异常捕获及日志记录

[0030]可选地,其中,所述
MLCPSocketControl
类包括:
[0031]第一初始化接口,用于设置连接名称,上下文对象,日志开关;
[0032]第一设置回调接口,用于初始化
MLCPCallBack
类,调用所述
MLCPCallBack
类的设置回调接口;
[0033]启动连接接口,用于设置连接
url、
端口

心跳保活时间间隔

断线重连间隔等参数,调用所述
Socket
连接创建接口来创建
MLCP
连接,开启读取线程来从数据缓冲区读取数据,回调接口来返回数据,调用心跳保活接口来开启心跳保活线程,断线重连;
[0034]心跳保活接口,用于发送心跳保活数据包,断线重连;
[0035]重连接口,用于调用所述
Socket
连接关闭接口来关闭
MLCP
连接,调用所述启动连接接口来启动
MLCP
连接;
[0036]第二数据发送接口,用于回调接口,调用所述第一数据发送接口来发送数据,断线重连;
[0037]第一关闭连接接口,用于调用所述数据缓冲区管理接口来清空数据缓冲区,调用所述
Socket
连接关闭接口来关闭
MLCP
连接,销毁数据读取线程;...

【技术保护点】

【技术特征摘要】
1.
一种业务数据发送方法,应用于数据发送方,其特征在于,所述方法包括:创建并启动与数据接收方的
MLCP
连接;基于心跳保活发送间隔,生成
MLCP
帧结构的心跳数据包,并基于业务数据发送请求,将待发送的业务数据封装成若干个
MLCP
帧结构的业务数据包;基于第一数据长度,分别将心跳数据包和每个业务数据包拆分成若干数据段;通过
Socket
,向所述数据接收方顺序发送心跳数据包和每个业务数据包对应的若干数据段
。2.
根据权利要求1所述的方法,其特征在于,
MLCP
包括:
MLCPSocket
类,对应
MLCP
的层次架构中的
Socket
操作层,用于实现
Socket
连接管理,数据发送,数据接收;
MLCPSocketControl
类,对应
MLCP
的层次架构中的
MLCP
控制层,继承所述
MLCPSocket
类,用于实现
Socket
请求,
MLCP
长连接逻辑控制;
MLCP
类,对应
MLCP
的层次架构中的
MLCP
接口层,继承所述
MLCPSocketControl
类,用于实现对外公共接口;
MLCPInterface
类,用于提供回调函数接口;
MLCPCallBack
类,用于回调函数管理;
MLCPLogUtil
类,用于提供日志工具
。3.
根据权利要求1所述的方法,其特征在于,所述
MLCP
还包括:
MLCPNetUtil
类,用于提供网络管理;
MLCPSysUtil
类,用于提供系统管理;
MLCPVerUtil
类,用于提供版本管理
。4.
根据权利要求2所述的方法,其特征在于,所述
MLCPSocket
类包括:
Socket
连接创建接口,用于初始化
Socket
连接,初始化数据缓冲区,调用数据接收接口来启动数据接收进程;
Socket
连接关闭接口,用于销毁数据缓冲区,销毁数据连接线程,销毁
Socket
连接;第一数据发送接口,用于将
MLCP
帧结构的数据包拆分成若干数据段,通过
Socket
顺序发送
MLCP
帧结构的数据包对应的若干数据段;数据接收接口,用于通过
Socket
顺序接收
MLCP
帧结构的数据包对应的若干数据段,将数据段写入数据缓冲区;数据缓冲区管理接口,用于初始化数据缓冲区,写入数据缓冲区,读取数据缓冲区,获取数据缓冲区长度,清空数据缓冲区
。5.
根据权利要求4所述的方法,其特征在于,所述
Socket
连接创建接口

所述
Socket
连接关闭接口

所述第一数据发送接口和所述数据接收接口还用于:异常捕获及日志记录
。6.
根据权利要求4所述的方法,其特征在于,所述
MLCPSocketControl
类包括:第一初始化接口,用于设置连接名称,上下文对象,日志开关;第一设置回调接口,用于初始化
MLCPCallBack
类,调用所述
MLCPCallBack
类的设置回调接口;启动连接接口,用于设置连接
url、
端口

心跳保活时间间隔

断线重连间隔等参数,调
用所述
Socket
连接创建接口来创建
MLCP
连接,开启读取线程来从数据缓冲区读取数据,回调接口来返回数据,调用心跳保活接口来开启心跳保活线程,断线重连;心跳保活接口,用于发送心跳保活数据包,断线重连;重连接口,用于调用所述
Socket
连接关闭接口来关闭
MLCP
连接,调用所述启动连接接口来启动
MLCP
连接;第二数据发送接口,用于回调接口,调用所述第一数据发送接口来发送数据,断线重连;第一关闭连接接口,用于调用所述数据缓冲区管理接口来清空数据缓冲区,调用所述
Socket
连接关闭接口来关闭
MLCP
连接,销毁数据读取线程;第一获取连接状态接口,用于返回
MLCP
连接状态;第一清空数据接口,用于调用所述数据缓冲区管理接口来清空数据缓冲区
。7.
根据权利要求6所述的方法,其特征在于,所述启动连接接口

所述心跳保活接口

所述重连接口

所述第二数据发送接口和所述第一关闭连接接口还用于:异常捕获及日志记录
。8.
根据权利要求6所述的方法,其特征在于,所述
MLCP
类包括:第二初始化接口,用于调用所述第一初始化接口;第二设置回调接口,用于调用所述第一设置回调接口;连接接口,用于调用所述启动连接接口;发送数据接口,用于调用所述第二数据发送接口;第二获取连接状态接口,用于调用所述第一获取连接状态接口;第二清空数据接口,用于调用所述第一清空数据接口;第二关闭连接接口,用于调用所述第一关闭连接接口
。9.
根据权利要求8所述的方法,其特征在于,所述
MLCPCallBack
类包括:第三设置回调接口,用于设置回调接口,以接收
MLCPInterface
类的参数;回调接口,用于调用
MLCPInterface
类的回调函数,以传入业务应用类型
、MLCP
实例名

连接状态和业务数据,或者回传这些参数给业务应用
。10.
根据权利要求9所述的方法,其特征在于,所述
MLCPInterface
类包括:回调函数,其中,所述回调函数的参数包括业务应用类型
、MLCP
实例名

连接状态和上下文对象
。11.
根据权利要求
10
所述的方法,其特征在于,所述
MLCPLogUtil
类包括:管理日志开关接口,用于设置日志开关状态,获取日志开关状态;记录信息日志接口,用于打印信息类型日志,调用保存日志到文件接口来将信息类型日志保存到文件;记录调试日志接口,用于打印调试类型日志,调用保存日志到文件接口来将调试类型日志保存到文件;记录警告日志接口,用于打印警告类型日志,调用保存日志到文件接口来将警告类型日志保存到文件;记录异常日志接口,用于打印异常类型日志,调用保存日志到文件接口来将异常类型日志保存到文件;
保存日志到文件接口,用于创建目录,创建文...

【专利技术属性】
技术研发人员:王仕友刘剑华谈成宝程黎辉关亚东
申请(专利权)人:上海龙旗科技股份有限公司
类型:发明
国别省市:

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

1