基于网络协议的数据传输方法、系统、设备和存储介质与流程
未命名
10-09
阅读:127
评论:0
1.本发明涉及数据传输技术领域,特别涉及基于网络协议的数据传输方法、系统、设备和存储介质。
背景技术:
2.在游戏开发中,网络协议的设计是非常重要的一部分,它决定了游戏在网络上的传输效率和可靠性,同时承载了传输过程中对于用户流量、开发者规范等非常重要的影响。现有的技术方案中,网络协议的设计更多的是依赖于对传统网络架构底层的使用,但是这些架构并没有对数据消息进行压缩和格式化处理,而是直接进行数据收发以满足高效的传送和逻辑的通用,但是在实际游戏开发中,业务成员可能会存在数据格式使用不正确的情况,比如可以用byte的却用int,导致每次消息发送非常大,造成网络传输效率的低下,且数据传输格式的混乱还会导致网络协议的错误。
技术实现要素:
3.为解决上述问题,本发明提供了基于网络协议的数据传输方法、系统、设备和存储介质,以克服现有技术中存在的因数据格式混乱而导致的网络传输效率低下和网络协议出错的问题。
4.本发明采用以下技术方案:
5.基于网络协议的数据传输方法,包括如下步骤:
6.s1、对cmd命令和rpc远程过程调用的数据进行聚合处理;
7.s2、对不同的数据类型分别进行转化,具备包括:对于基础数据,直接在网络架构底层对数据类型进行区间合理化判断,并转化成byte数据;对于浮点数据,将浮点数据整数化并保留预定的数据精度;对于vector数据,将三元数vector3的数值拆分成x、y、z,然后转化成float类型或string类型;对于四元数,将四元数quaternion转化成uint类型并压缩成相应的旋转参数;
8.s3、数据序列化:将所有转化后的数据转换为binary格式;
9.s4、数据压缩:将binary格式的数据传入压缩算法以去除不必要的数位;
10.s5、差异传输:对于高频率的数据,先初始传递整个数据,后续若数据发生变化,则只传输数据的差值部分。
11.进一步地,所述基础数据包括bool、int、ulnt、long、ulong、float中的任意一种或几种类型的数据。
12.进一步地,所述浮点数据包括short、ushort、double、string、vector2中的任意一种或几种类型的数据。
13.进一步地,所述浮点数据的预定的数据精度为保留1~3位小数。
14.进一步地,步骤s3中,所述转化后的数据通过bytebuffer数据解析器转换为binary格式。
15.进一步地,步骤s4中,所述不必要的数位是指binary格式的数据中全部用0表示的数位。
16.进一步地,步骤s5中,所述高频率的数据包括移动和/或旋转的数据。
17.基于网络协议的数据传输系统,所述系统包括聚合模块、转化模块、序列压缩模块和差异传输模块;
18.所述聚合模块用于对cmd命令和rpc远程过程调用的数据进行聚合处理;
19.所述转化模块用于对聚合处理后的不同的数据类型分别进行转化,以形成相应数据类型;
20.所述序列压缩模块用于将所有转化后的数据转换为binary格式,并传入压缩算法以去除不必要的数位;
21.所述差异传输模块压缩后的数据进行差异传输;所述差异传输具体为:先初始传递整个数据,后续若数据发生变化,则只传输数据的差值部分。
22.计算机设备,所述计算机设备包括存储器和处理器;
23.所述存储器用于存储计算机程序;
24.所述处理器用于记载并执行所述计算机程序以实现如上所述的基于网络协议的数据传输方法的步骤。
25.计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于网络协议的数据传输方法的步骤。
26.采用上述技术方案后,本发明与背景技术相比,具有如下优点:
27.本发明采用拓展的cmd命令和rpc远程过程调用来优化数据,并采用新的统一的数据结构类型对数据进行转化,通过对消息内容进行压缩和格式化处理,大大降低了传输数据的大小,降低网络传输延迟,从而提高网络的传输效率和游戏的性能,解决现有技术中存在的因数据格式混乱而导致的网络传输效率低下的问题;此外,本发明的新的数据结构可以采用统一接口,无需根据业务判断使用哪个协议,从而减少网络协议出错的情况。
附图说明
28.图1为本发明的方法流程图。
具体实施方式
29.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
30.实施例
31.本发明的第一目的在于提供基于网络协议的数据传输方法,如图1所示,该方法包括如下步骤:
32.s1、对cmd命令和rpc远程过程调用的数据进行聚合处理;本实施例利用业务通信逻辑的劫持和整合,具体来说,我们去除了networktransform中的scale参数,并拆分了cmdclienttoserversync函数,通过对数据进行聚合处理,可以优化网络传输效率。
33.s2、对不同的数据类型分别进行转化,具备包括:
34.对于基础数据,直接在网络架构底层对数据类型进行区间合理化判断,并转化成byte数据;所述基础数据包括bool、int、ulnt、long、ulong、float等类型的数据。例如,对于可以采用byte进行表示的数据,却使用了int进行表示,会拖慢传输效率,因此我们将int数据转化成byte类型的数据,从而减少每次消息发送的数据量。
35.对于浮点数据,将浮点数据整数化并保留两位小数;所述浮点数据包括short、ushort、double、string、vector2等类型的数据。本实施例的数据精度为保留两位小数,例如,遇到0.234234则转化为0.23;当然,也可以根据需要保留1位或3位小数,这样可以减少数据的大小,并确保数据在网络传输过程中的准确性。
36.对于vector数据,将三元数vector3的数值拆分成x、y、z,然后转化成float类型或string类型。
37.对于四元数,将四元数quaternion转化成uint类型并压缩成相应的旋转参数,这同样是为了减少数据的大小,并确保数据在网络传输过程中的准确性。
38.在本发明中,对旧的数据结构进行了调整,并采用了新的数据结构;经过测试,相比于无转化的数据,新的数据结构可以将每份数据的大小从固定的24字节降低到平均15字节,降幅达到了37%。
39.s3、数据序列化:将所有转化后的数据通过自编码的bytebuffer数据解析器转换为binary格式;从而实现自动高效的序列化转换,降低序列化后的数据大小,进一步提高网络传输效率。
40.s4、数据压缩:将binary格式的数据传入压缩算法以去除不必要的数位;所述不必要的数位是指binary格式的数据中全部用0表示的数位。例如:1int是4位,在binary的数据中显示为0000000000000001,此时,我们可以在数据序列化前针对1的数值大小,如果小于255则将数据以byte进行传输,就可以将0000000000000001改为0001。这样就可以进一步将数据压缩到极致,从而保证网络传输效率。
41.相比于无压缩的数据,本发明中经过压缩后的每份数据的大小从固定的18字节降低到平均15字节,降幅达到了16%。
42.s5、差异传输:对于移动或旋转的高频率的数据,先初始传递整个数据,后续若数据发生变化,则只传输数据的差值部分。例如:初始移动坐标为x=33943.23,y=43243.23,z=34322.43,后续当位置变成x=33343.43,y=43043.25,z=34342.45,我们只需要上传他们之间的差值,即x=-559.8,y=-199.98,z=20.02,这样所传输的差异数据会小非常多,从而减小传输数据的大小,并降低网络传输延迟。
43.本发明的第二目的在于提供基于网络协议的数据传输系统,所述系统包括聚合模块、转化模块、序列压缩模块和差异传输模块;
44.所述聚合模块用于对cmd命令和rpc远程过程调用的数据进行聚合处理;
45.所述转化模块用于对聚合处理后的不同的数据类型分别进行转化,以形成相应数据类型;
46.所述序列压缩模块用于将所有转化后的数据转换为binary格式,并传入压缩算法以去除不必要的数位;
47.所述差异传输模块压缩后的数据进行差异传输;所述差异传输具体为:先初始传递整个数据,后续若数据发生变化,则只传输数据的差值部分。
48.上述系统中各个模块的功能和作用的实现过程具体参见上述方法中对应步骤的实现过程,在此不再赘述。
49.本发明的第三目的在于提供计算机设备,所述计算机设备包括存储器和处理器;
50.所述存储器用于存储计算机程序;
51.所述处理器用于记载并执行所述计算机程序以实现如上述的基于网络协议的数据传输方法的步骤。
52.本发明的第四目的在于提供计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于网络协议的数据传输方法的步骤。
53.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序商品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序商品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
54.本发明是参照根据本发明实施例的方法、系统和计算机程序商品的流程图来描述的。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
55.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程中指定的功能。
56.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程中指定的功能的步骤。
57.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
58.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
59.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,
都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
技术特征:
1.基于网络协议的数据传输方法,其特征在于:包括如下步骤:s1、对cmd命令和rpc远程过程调用的数据进行聚合处理;s2、对不同的数据类型分别进行转化,具备包括:对于基础数据,直接在网络架构底层对数据类型进行区间合理化判断,并转化成byte数据;对于浮点数据,将浮点数据整数化并保留预定的数据精度;对于vector数据,将三元数vector3的数值拆分成x、y、z,然后转化成float类型或string类型;对于四元数,将四元数quaternion转化成uint类型并压缩成相应的旋转参数;s3、数据序列化:将所有转化后的数据转换为binary格式;s4、数据压缩:将binary格式的数据传入压缩算法以去除不必要的数位;s5、差异传输:对于高频率的数据,先初始传递整个数据,后续若数据发生变化,则只传输数据的差值部分。2.如权利要求1所述的基于网络协议的数据传输方法,其特征在于:所述基础数据包括bool、int、ulnt、long、ulong、float中的任意一种或几种类型的数据。3.如权利要求2所述的基于网络协议的数据传输方法,其特征在于:所述浮点数据包括short、ushort、double、string、vector2中的任意一种或几种类型的数据。4.如权利要求3所述的基于网络协议的数据传输方法,其特征在于:所述浮点数据的预定的数据精度为保留1~3位小数。5.如权利要求4所述的基于网络协议的数据传输方法,其特征在于:步骤s3中,所述转化后的数据通过bytebuffer数据解析器转换为binary格式。6.如权利要求5所述的基于网络协议的数据传输方法,其特征在于:步骤s4中,所述不必要的数位是指binary格式的数据中全部用0表示的数位。7.如权利要求6所述的基于网络协议的数据传输方法,其特征在于:步骤s5中,所述高频率的数据包括移动和/或旋转的数据。8.基于网络协议的数据传输系统,其特征在于:所述系统包括聚合模块、转化模块、序列压缩模块和差异传输模块;所述聚合模块用于对cmd命令和rpc远程过程调用的数据进行聚合处理;所述转化模块用于对聚合处理后的不同的数据类型分别进行转化,以形成相应数据类型;所述序列压缩模块用于将所有转化后的数据转换为binary格式,并传入压缩算法以去除不必要的数位;所述差异传输模块压缩后的数据进行差异传输;所述差异传输具体为:先初始传递整个数据,后续若数据发生变化,则只传输数据的差值部分。9.计算机设备,其特征在于:所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器用于记载并执行所述计算机程序以实现如权利要求1~7任一项所述的基于网络协议的数据传输方法的步骤。10.计算机可读存储介质,其特征在于:所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1~7任一项所述的基于网络协议的数据传输方法的步骤。
技术总结
本发明公开了基于网络协议的数据传输方法、系统、设备和存储介质,所述方法包括如下步骤:S1、对CMD命令和RPC远程过程调用的数据进行聚合处理;S2、对不同的数据类型分别进行转化;S3、数据序列化:将所有转化后的数据转换为binary格式;S4、数据压缩:将binary格式的数据传入压缩算法以去除不必要的数位;S5、差异传输:对于高频率的数据,先初始传递整个数据,后续若数据发生变化,则只传输数据的差值部分。本发明采用统一的数据结构对消息内容进行压缩和格式化处理,大大降低了传输数据的大小,降低网络传输延迟,从而提高网络的传输效率和游戏的性能,并减少网络协议出错的情况。并减少网络协议出错的情况。并减少网络协议出错的情况。
技术研发人员:魏炜
受保护的技术使用者:厦门真有趣信息科技有限公司
技术研发日:2023.07.05
技术公布日:2023/10/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
