一种传输数据的方法和装置与流程

文档序号:12493747阅读:138来源:国知局
本发明涉及计算机领域,尤其涉及一种传输数据的方法和装置。
背景技术
:现有传输数据的实现技术方案主要是使用可扩展标记语言(XML)、对象标记(JSON)等通用数据交换格式作为通信协议来完成跨平台间的消息通信及数据交换。更进一步地会提供一些辅助功能,诸如提供基于元数据描述文件来生成通讯协议接口的功能。XML和JSON此类文本协议本身具有冗余数据多、解析复杂等缺点,原因是它们传输数据时,除了需要传输有效数据以外,还需要传输一系列XML或JSON标签等冗余数据。在解析时,也需要首先进行标签匹配,然后才能抽取有效数据。这些缺点导致消息通讯时存在解析效率低下、占用网络带宽较高、CPU资源使用率较高等问题。此外,由于利用XML和JSON传输数据,要求通讯双方的通信协议版本必须保持一致,否则数据无法正常传输。综上,现有技术中在双方的通信协议版本不一致的情况下无法传输数据,而且在双方的通信协议版本一致的情况下传输数据时,占用网络带宽较高且CPU资源使用率较高。技术实现要素:本发明实施例提供了一种传输数据的方法,能够在双方的通信协议版本不一致的情况下传输数据,同时有效降低占用网络带宽和CPU资源使用率。本发明实施例还提供了一种传输数据的装置,能够在双方的通信协议版本不一致的情况下传输数据,同时有效降低占用网络带宽和CPU资源使用率。一种传输数据的方法,所述方法包括:通过握手向下兼容通信协议版本;依据所述通信协议版本按照字段类型的顺序,编码消息命令获得编码结果;发送编码结果。可选的,所述通过握手向下兼容通信协议版本,包括:通过握手获知通信协议版本不同,采用向下兼容的通信协议版本。可选的,所述字段类型,包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。可选的,所述方法还包括:缓存所述消息命令的消息内容,设置所述消息命令与标识的映射关系;所述编码消息命令,包括:消息内容存储在缓存,依据所述消息命令和映射关系获取所述消息命令对应的标识,编码带有标识的消息命令;消息内容不存储在缓存,为所述消息命令设置对应的标识,编码带有标识和消息内容的消息命令。可选的,所述字段类型,包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码、内嵌命令编码和缓存内嵌命令编码。一种传输数据的方法,所述方法包括:通过握手向下兼容通信协议版本;接收编码结果;依据所述通信协议版本按照字段类型的顺序,解码编码结果获得消息命令。可选的,所述通过握手向下兼容通信协议版本,包括:通过握手获知通信协议版本不同,采用向下兼容的通信协议版本。可选的,所述字段类型,包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。可选的,所述方法还包括:缓存所述消息命令的消息内容,设置所述消息命令与标识的映射关系;所述解码编码结果获得消息命令,包括:消息内容存储在缓存,依据所述消息命令获取所述消息命令对应的标识,再按照所述标识和映射关系获得消息内容;消息内容不存储在缓存,解码编码结果获得消息内容。可选的,所述字段类型,包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码、内嵌命令编码和缓存内嵌命令编码。一种传输数据的装置,所述装置包括:协议自动协商管理器,用于通过握手向下兼容通信协议版本;命令编/解码器,用于依据所述通信协议版本按照字段类型的顺序,编码消息命令获得编码结果,发送编码结果。可选的,所述协议自动协商管理器,还用于通过握手获知通信协议版本不同,采用向下兼容的通信协议版本。可选的,所述字段类型,包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。可选的,所述装置还包括:消息命令缓存管理器,用于缓存所述消息命令的消息内容,设置所述消息命令与标识的映射关系;所述命令编/解码器,还用于消息内容存储在缓存,依据所述消息命令和映射关系获取所述消息命令对应的标识,编码带有标识的消息命令;消息内容不存储在缓存,为所述消息命令设置对应的标识,编码带有标识和消息内容的消息命令。可选的,所述字段类型,包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码、内嵌命令编码和缓存内嵌命令编码。一种传输数据的装置,所述装置包括:协议自动协商管理器,用于通过握手向下兼容通信协议版本;命令编/解码器,用于接收编码结果,依据所述通信协议版本按照字段类型的顺序,解码编码结果获得消息命令。可选的,所述协议自动协商管理器,还用于通过握手获知通信协议版本不同,采用向下兼容的通信协议版本。可选的,所述字段类型,包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。可选的,所述装置还包括:消息命令缓存管理器,用于缓存所述消息命令的消息内容,设置所述消息命令与标识的映射关系;所述命令编/解码器,还用于消息内容存储在缓存,依据所述消息命令获取所述消息命令对应的标识,再按照所述标识和映射关系获得消息内容;消息命令不存储在缓存,解码编码结果获得消息内容。可选的,所述字段类型,包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码、内嵌命令编码和缓存内嵌命令编码。从上述技术方案中可以看出,在本发明实施例中通过握手向下兼容通信协议版本;依据所述通信协议版本按照字段类型的顺序,编码消息命令获得编码结果;发送编码结果。能够在双方的通信协议版本不一致的情况下传输数据,而且编码结果长度远远小于现有编码的长度,因此有效降低了占用网络带宽和CPU资源使用率。附图说明从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明其中,相同或相似的附图标记表示相同或相似的特征。图1为本发明第一实施例中传输数据的方法流程示意图;图2为本发明第一实施例中通过握手向下兼容通信协议版本的流程示意图;图3为本发明第一实施例中发送端缓存消息命令的流程示意图;图4为本发明第二实施例中传输数据的方法流程示意图;图5为本发明第二实施例中接收端缓存消息命令的流程示意图;图6为本发明第三实施例中传输数据的装置结构示意图;图7为本发明第四实施例中传输数据的装置结构示意图;图8为本发明实施例中发送端与接收端交互数据的结构示意图。具体实施方式为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。在本发明实施例中,首先通过握手向下兼容通信协议版本,这样就可以在发送方与接收方的通信协议版本不一致的情况下传输数据;然后,依据通信协议版本按照字段类型的顺序,编码消息命令获得编码结果;发送编码结果。由于上述编码结果所占用的字节远远小于现有技术中采用XML和JSON编码所占用的字节,因此有效降低了占用网络带宽和CPU资源使用率。参见图1为实施例一中传输数据的方法流程示意图,本实施例应用于数据的发送端,具体包括:101、通过握手向下兼容通信协议版本。数据需要从发送端传输至接收端,发送端可以是客户端,那么对应接收端可以是服务器端;发送端是客户端,对应接收端还可以是其他客户端;发送端是服务器端,对应接收端可以是服务器端;发送端是服务器端,对应接收端还可以是客户端。也就是说,数据可以在客户端之间,服务器之间,客户端与服务器之间任意的传输。通过握手获知通信协议版本不同,采用向下兼容的通信协议版本。即,在协议双方开始通讯时,首先发送协议自协商报文,基于协议版本向下兼容的原则,通过一次报文交换,通信双方即可完成协议的自协商功能,在复杂的环境下支持不同版本的并行使用。具体的,参见图2为通过握手向下兼容通信协议版本的流程示意图,具体包括:1011、发送端向接收端发送协议协商命令。当发送端端主动连接接收端时,将发送端通信协议版本号信息携带在协议协商命令中,经编码成字节数组并写入网络。1012、确定向下兼容通信协议版本。接收端从网络读取该字节数组,经解码得到协议协商命令,根据协议协商命令中的发送端通信协议版本号信息确定发送端使用通信协议版本。比较接收端使用通信协议版本与发送端使用通信协议版本。若接收端使用通信协议版本高于发送端使用通信协议版本,则发送将接收端使用通信协议版本修正为发送端使用通信协议版本的消息给接收端,以使接收端将自身通信协议参数设置为发送端通信协议参数,实现向下兼容。并发送协商结果给发送端,协商结果为发送端继续使用当前客户端通信协议版本进行通信的消息。若接收端使用通信协议版本低于发送端使用通信协议版本,则发送协商结果给发送端,协商结果为将发送端使用通信协议版本修正为接收端使用通信协议版本的消息,以使发送端将自身通信协议参数设置为服务端通信协议参数,实现向下兼容。1013、根据协商结果进行通信。发送端与接收端根据协商结果进行通信。支持新旧版本通信协议版本的并存,具备自协商能力,双方通过握手来协商通信协议版本,具有更高的通用性。由于无需关注发送端和接收端的协议版本,兼容性更好。不同版本的通信协议所包括的字段类型和字段类型的顺序都是相同的。102、依据通信协议版本按照字段类型的顺序,编码消息命令获得编码结果。确定通信协议版本后,在对消息命令编码时,按照字段类型和字段类型的顺序,获得编码结果。参见表1:字段类型包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。参见表1:字段类型的顺序依次为:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。表1对于表1中的各项字段类型,有以下具体的说明:1、字节顺序:采用大端模式。大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。目前多数处理器使用大端模式,网络上传输数据也采用的都是大端,所以本发明中也选用大端模式。例如,参见表2对于十六进制数0x12345678在内存中的表示。表2内存地址(低->高)0123大端模式123456782、消息报文格式消息报文是由多个命令顺序组成。3、命令编码命令编码格式:长度(4字节)+类型(1字节)+命令字段集([长度-1]字节)。4、命令字段编码字段基本类型包括:基本类型、字符串、字节数组、内嵌命令和缓存内嵌命令。5、基本类型编码基本类型编码格式:byte(1字节)、boolean(1字节)、char(2字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)以及double(8字节)。6、字符串编码字符串编码格式:非空标志(1字节)+长度(2字节)+字符串内容([长度]字节)。a)长度和字符串内容只在[非空标志=1]时才存在;b)字符串的内容使用UTF编码表示。7、字节数组编码字节数组编码格式:非空标志(1字节)+长度(4字节)+数组内容([长度]字节)。a)长度和数组内容只在[非空标志=1]时才存在。8、内嵌命令编码内嵌命令编码格式:非空标志(1字节)+类型(1字节)+内嵌命令内容。a)类型和内嵌命令内容只在[非空标志=1]时才存在;b)每个命令包含唯一类型标识。下面通过一个具体的实施方式详细说明按照字段类型的顺序进行编码。对于一个Java类Person,其定义如表3:表3对于对象参见表4:表41、编码中每个字段的具体解释参见表5:表52、消息报文格式此处对象Person即一个命令,传输多个Person信息时,即顺序连接多个Person,具体连接方式参见表6::表63、命令编码按照表7的格式对表6每一个Person对应一次编码,即命令编码。表7每个Person对应一次编码,对应编码后的内容为0000003a,占4字节,表示person对象编码后的长度为58个字节,具体表示参见表8:表8类型标识用来区分不同的业务类型,例如person、book。不同的类型有不同的标识,表示Person对象的类型标识为01。命令字段集占用剩下的57=[58-1]个字节,即为person对象本身编码后的内容。4、命令字段编码Person对象所有字段的编码包括:基本类型、字符串、字节数组、内嵌命令、缓存内嵌命令。其中,基本类型包括字段education,married,gender,height,age,phone,salary,assets。字符串包括字段name;字节数组包括字段bwh;内嵌命令包括字段address;缓存内嵌命令为无。5、基本类型编码基本类型中,字段education,married,gender,height,age,phone,salary,assets具体编码结果及分别占用字节长度参见表9:表9对于基本类型,在消息命令Person编码时,按照预存的类型与通信协议各字段类型(基本类型或非基本类型)及顺序的对应关系,以及根据消息命令类型确定对应的字段类型及顺序。相应的,消息命令Person解码时,按照对应的字段类型及顺序,即第一个字段学历education是byte类型,占用1个字节,使用readByte方式读取即可,第三个字段性别gender是char类型,占用2个字节,使用readChar方式读取即可。6、字符串编码字符串字段name编码格式为非空+长度+内容。参见表10,内容为Jhon,具体编码结果及占用字节长度为:表107、字节数组编码字节数组字段bwh编码格式为非空+长度+内容,内容为25、30、30,具体编码结果及占用字节长度参见表11:表118、内嵌命令编码内嵌命令字段address编码格式为非空+类型+内容,内容为邮编,由于内嵌命令本身也是一个对象,即编码为一个命令,因此,不再定义长度,而定义字段类型,如整形字段,具体编码结果及占用字节长度参见表12:表12综上,参见表13对一个Java类Persong编码后长度为62字节,即通过采用变长二进制编码格式,根据实际长度实现二进制编码,而非现有定长编码格式。假定对象Person以消息的方式在网络上进行传输,分别使用XML、JSON和本协议编码结果如下:1)XML:内容:<person><education>1</education><married>true</married><gender>F</gender><height>170</height><age>23</age><phone>13677778888</phone><salary>5000.5</salary><assets>20000.5</assets><name>Jhon</name><bwh>GR4e</bwh><address><zipCode>100</zipCode></address></person>编码长度为261字节。2)JSON:内容:{″Person″:{″education″:1,″married″:true,″gender″:″F″,″height″:170,″age″:23,″phone″:13677778888,″salary″:5000.5,″assets″:20000.5,″name″:″Jhon″,″bwh″:[″GR4e″],″address″:{″zipCode″:100}}}编码长度为184字节。3)本发明技术方案:内容:0x0000003a010101004600aa00000017000000032f4257c8459c440040d388200000000001000600044a686f6e0100000003191e1e01020000000000000064编码长度为62字节。可见,针对此对象,本发明技术方案的编码效率分别是XML的4.5倍(261/62=4.2),是JSON的3.9倍(184/62=2.9),编码长度越小表示编码效率越高;同时直观可见XML和JSON存在较多冗余标签(如<person>和{″Person″等)。103、发送编码结果。发送方向接收方发送编码结果。由上述101-103的技术方案可知,首先通过握手向下兼容通信协议版本,这样就可以在发送方与接收方的通信协议版本不一致的情况下传输数据;然后,依据所述通信协议版本按照字段类型的顺序,编码消息命令获得编码结果;发送编码结果。由于按照字段类型的顺序编码后的结果所占用的字节远远小于现有技术中采用XML和JSON编码所占用的字节,因此有效降低了占用网络带宽和CPU资源使用率。此外,在101-103技术方案的基础上,还可以缓存消息命令,以达到进一步减少发送字节的目的。图3为缓存消息命令的流程示意图,具体包括:301、缓存消息命令的消息内容,设置消息命令与标识的映射关系;发送端发送消息命令时,首先查询本地缓存。如果消息命令中的消息内容没有被缓存,则生成一个ID,并在本地缓存保存此ID和消息命令的映射关系。同时设置缓存标志(新值标志=1)为false。消息内容存储在缓存执行302;消息内容不存储在缓存执行303。302、消息内容存储在缓存。消息内容已经存储在缓存,则设置缓存标志(新值标志=0)为true。依据消息命令和映射关系获取消息命令对应的标识,编码带有标识的消息命令。303、消息内容不存储在缓存。消息内容不存储在缓存,为消息内容对应的消息命令设置对应的标识,编码带有标识和消息内容的消息命令。通过字段类型可以确定消息内容是否存储在缓存中。其中,字段类型包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码、内嵌命令编码和缓存内嵌命令编码。在八个字段类型的基础上增加了缓存内嵌命令编码。9、缓存内嵌命令编码缓存内嵌命令编码格式:新值标志(1字节)+标识(2字节)+缓存内嵌命令内容。a)[新值标志=1]时,表示此消息命令尚未缓存,标识和缓存内嵌消息内容均非空,新值标志即命令唯一ID,缓存内嵌消息内容即命令内容;b)[新值标志=0]时,表示此消息命令已经缓存,标识即消息命令唯一ID,缓存内嵌消息内容为空;c)最大可以缓存65536个字节。通过建立消息命令与标识的映射关系,在相同消息命令第二次发送时,仅发送相应标识即可,无需发送消息命令对应的消息内容,从而降低对网络带宽的占用。参见图4为本发明第二实施例中传输数据的方法流程示意图,与实施例一相对应的,本实施例应用于与数据发送端相对应的数据接收端。具体包括:401、通过握手向下兼容通信协议版本。数据需要从发送端传输至接收端,发送端可以是客户端,那么对应接收端可以是服务器端;发送端是客户端,对应接收端还可以是其他客户端;发送端是服务器端,对应接收端可以是服务器端;发送端是服务器端,对应接收端还可以是客户端。也就是说,数据可以在客户端之间,服务器之间,客户端与服务器之间任意的传输。通过握手获知通信协议版本不同,采用向下兼容的通信协议版本。即,在协议双方开始通讯时,首先发送协议自协商报文,基于配置采取交集和协议版本向下兼容的原则,通过一次报文交换,通信双方即可完成协议的自协商功能,在复杂的环境下支持不同版本的并行使用。具体的,通过握手向下兼容通信协议版本的过程可参见1011至1013,在此不再重复说明。402、接收编码结果。接收端接收发送端发送的编码结果。403、依据通信协议版本按照字段类型的顺序,解码编码结果获得消息命令。确定通信协议版本后,在对编码结果解码时,按照字段类型和字段类型的顺序,获得消息命令。参见表1:字段类型包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。参见表1:字段类型的顺序依次为:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。每个字段类型的说明参见步骤102。由上述401-403的技术方案可知,首先通过握手向下兼容通信协议版本,这样就可以在发送方与接收方的通信协议版本不一致的情况下传输数据;然后,接收端接收发送端发送的编码结果。依据通信协议版本按照字段类型的顺序,解码编码结果获得消息命令。由于按照字段类型的顺序编码后的结果所占用的字节远远小于现有技术中采用XML和JSON编码所占用的字节,因此有效降低了占用网络带宽和CPU资源使用率。此外,在401-403技术方案的基础上,还可以缓存消息命令,以达到进一步减少发送字节的目的。参见图5为接收端缓存消息命令的流程示意图,具体包括:501、消息命令是否存在标识。解码接收到的编码结果得到消息命令,消息命令中存在标识,则执行502;消息命令中不存在标识,则执行503。502、依据标识获得消息命令对应的消息内容。如果消息命令中存在标识,则说明在接收端已缓存消息命令对应的消息内容。根据标识查询标识与消息命令的映射关系,获得消息命令对应的消息内容。503、依据消息命令获得消息命令对应的消息内容。如果消息命令中不存在标识,则解码编码结构获得消息命令对应的消息内容。同时,缓存消息命令的消息内容,设置消息命令与标识的映射关系。通过字段类型可以确定消息内容是否存储在缓存中。其中,字段类型包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码、内嵌命令编码和缓存内嵌命令编码。在八个字段类型的基础上增加了缓存内嵌命令编码。通过建立消息命令与标识的映射关系,在相同消息命令第二次接收时,仅接收相应标识即可,从而降低对网络带宽的占用。图6为本发明第三实施例中传输数据的装置结构示意图,实施例三是与实施一相对应的装置,具体包括:协议自动协商管理器601,用于通过握手向下兼容通信协议版本;命令编/解码器602,用于依据通信协议版本按照字段类型的顺序,编码消息命令获得编码结果,发送编码结果。具体的,协议自动协商管理器601,还用于通过握手获知通信协议版本不同,采用向下兼容的通信协议版本。字段类型包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。传输数据的装置还包括:消息命令缓存管理器603,用于缓存消息命令的消息内容,设置所述消息命令与所述标识的映射关系;对应的,命令编/解码器602,还用于消息内容存储在缓存,依据消息命令和映射关系获取消息命令对应的标识,编码带有标识的消息命令;消息内容不存储在缓存,为消息命令设置对应的标识,编码带有标识和消息内容的消息命令。缓存数据时,则字段类型包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码、内嵌命令编码和缓存内嵌命令编码。实施例三提供传输数据的装置技术效果与对应的实施例一中方法实施例相同,在此不再赘述。图7为本发明第四实施例中传输数据的装置结构示意图,实施例四是与实施二相对应的装置,具体包括:协议自动协商管理器701,用于通过握手向下兼容通信协议版本;命令编/解码器702,用于接收编码结果,依据通信协议版本按照字段类型的顺序,解码编码结果获得消息命令。具体的,协议自动协商管理器701,还用于通过握手获知通信协议版本不同,采用向下兼容的通信协议版本。字段类型包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码和内嵌命令编码。传输数据的装置还包括:消息命令缓存管理器703,用于缓存消息命令的消息内容,设置所述消息命令与标识的映射关系;对应的,命令编/解码器702,还用于消息内容存储在缓存,依据消息命令获取消息命令对应的标识,再按照标识和映射关系获得消息内容;消息命令不存在缓存,解码编码结果获得消息内容。所述字段类型包括:字节顺序、消息报文格式、命令编码、命令字段编码、基本类型编码、字符串编码、字节数组编码、内嵌命令编码和缓存内嵌命令编码。实施例四提供的传输数据的装置技术效果与对应的实施例二中方法实施例相同,在此不再赘述。参见图8为发送端与接收端交互数据的结构示意图,具体包括以下步骤:在进行数据交互时,首先进行通信双方通信协议的自动协商:步骤1:当消息发送端向消息接收端发起连接请求消息时,通过协议自动协商管理器601发送协议协商命令给命令编/解码器602,命令编/解码器602将协议协商命令编码为字节数组并写入网络。步骤2:当消息接收端从网络读取该字节数组时,命令编/解码器702将该字节数组解码为协议协商命令,通过协议自动协商管理器701自动进行协商并将协商结果发送给消息发送端。步骤3:消息发送端收到协商结果后,根据该协商结果设置自身的通信协议。当消息发送端设置完自身的通信协议后,返回连接成功消息给消息接收端,以便消息发送端在接收到连接成功消息时发起消息业务请求。步骤1-步骤3为一次完整的通过握手确定通信协议版本的过程。步骤4:当消息发送端发送消息命令A时,通过消息命令缓存管理器603判断该消息命令A的消息内容是否存在缓存。若消息命令A的消息内容不存在缓存,则为该消息命令A设置一个唯一ID(一个自增序号),并在内存中保存ID与消息命令A的双向映射关系。将ID和消息内容携带在消息命令A中并发送给命令编/解码器602,由命令编/解码器602将携带有ID和消息内容的消息命令A编码为字节数组并写入网络。若消息命令A的消息内容存在缓存,则从缓存中获取ID,并直接将获取到的ID发送给命令编/解码器602,由命令编/解码器602将包括ID的消息命令A编码为字节数组并写入网络,无需将消息命令A的消息内容进行网络传输。其中,命令编/解码器602编码内预存消息命令类型与消息通信协议各字段类型(基本类型或非基本类型)及顺序的对应关系。命令编/解码器602用于定义消息命令A的类型(如通过判断将该消息命令A标识为人的信息还是书的信息),并通过判断该消息命令A的类型,确定该消息命令A按照所对应的消息通信协议中各字段类型及顺序进行二进制变长格式的编码。步骤5:消息接收端从网络读写字节数组,通过命令编/解码器702解码并发送给消息命令缓存管理器703。命令编/解码器702通过读取字节数组中的ID,判断该ID是否存在缓存。若该ID不存在缓存,即消息内容没有存储在缓存,则从发送端读取消息命令A并解码得到消息命令A的消息内容,并在内存中保存消息命令A的消息内容,设置消息命令A与ID的映射关系。其中,命令编/解码器702依据通信协议版本按照字段类型的顺序解码消息命令A。若ID存在缓存,即消息内容存储在缓存,则在缓存中依据ID查询关联的消息命令A,进而直接从缓存获得消息内容,无需从网络中解码以获得消息内容。步骤6:接收端发送对应于消息命令A的业务处理结果给消息发送端。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使对应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1