CN110381056A - 基于Netty的私有协议编解码方法及装置 - Google Patents

基于Netty的私有协议编解码方法及装置 Download PDF

Info

Publication number
CN110381056A
CN110381056A CN201910645412.3A CN201910645412A CN110381056A CN 110381056 A CN110381056 A CN 110381056A CN 201910645412 A CN201910645412 A CN 201910645412A CN 110381056 A CN110381056 A CN 110381056A
Authority
CN
China
Prior art keywords
proprietary protocol
field
decoding
protocol
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910645412.3A
Other languages
English (en)
Other versions
CN110381056B (zh
Inventor
何永庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taima Information Network Technology Co Ltd
Original Assignee
Taima Information Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taima Information Network Technology Co Ltd filed Critical Taima Information Network Technology Co Ltd
Priority to CN201910645412.3A priority Critical patent/CN110381056B/zh
Publication of CN110381056A publication Critical patent/CN110381056A/zh
Application granted granted Critical
Publication of CN110381056B publication Critical patent/CN110381056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明涉及数据通信技术领域,尤其涉及基于Netty的私有协议编解码方法及装置,所述方法包括:对基于Netty的私有协议定义类注解和字段注解,类注解包含用于唯一标识私有协议身份的协议标识信息,字段注解包含私有协议包含的字段,以及字段的编解码属性信息;获取待编解码的第一目标报文,第一目标报文携带有第一目标协议标识信息;基于私有协议的类注解,从一个以上私有协议中确定出与第一目标报文对应的第一目标私有协议,第一目标私有协议的类注解包含第一目标协议标识信息;利用第一目标私有协议的字段注解,对第一目标报文进行编解码。通过上述过程实现了在Netty中对目标报文的编解码,编解码过程简单,提高了编解码的效率。

Description

基于Netty的私有协议编解码方法及装置
技术领域
本发明涉及数据通信技术领域,尤其涉及基于Netty的私有协议编解码方法及装置。
背景技术
Netty是一个基于NIO的编程框架。使用Netty可以确保快速和简单的开发出一个网络应用。Netty相当于对网络应用的编程开发过程进行了简化和流线化。Netty本身提供基础数据类型的编解码和一些成熟的第三方编解码,使用者可根据各自的需要进行选择不同的编解码方式。
从协议的角度来看,协议分为公有协议和私有协议。公有协议指的是业界普遍遵循的通信协议。私有协议是开发者自定义的协议。对于公有协议,Netty提供了大量的编解码器,从而简化开发者的使用。而对于私有协议,Netty并不知道如何进行编解码。因此,亟需一种在Netty中实现利用私有协议进行编解码的方法。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于Netty的私有协议编解码方法及装置。
依据本发明的第一个方面,本发明提供一种基于Netty的私有协议编解码方法,所述方法包括:
对基于Netty的私有协议定义类注解和字段注解,所述类注解包含用于唯一标识所述私有协议身份的协议标识信息,所述字段注解包含所述私有协议包含的字段,以及所述字段的编解码属性信息;
获取待编解码的第一目标报文,所述第一目标报文携带有第一目标协议标识信息;
基于所述私有协议的所述类注解,从一个以上所述私有协议中确定出与所述第一目标报文对应的第一目标私有协议,其中,所述第一目标私有协议的类注解包含所述第一目标协议标识信息;
利用所述第一目标私有协议的字段注解,对所述第一目标报文进行编解码。
优选的,所述编解码属性信息包含字段顺序、字段类型和数据类型。
优选的,所述编解码属性信息还包含字段长度、字段补全方式和字段间依赖关系中的至少一种。
优选的,所述方法还包括:
对所述私有协议定义预设处理逻辑,所述预设处理逻辑用于对报文进行预设处理操作;
获取待处理的第二目标报文,所述第二目标报文携带有第二目标协议标识信息;
基于所述私有协议的所述类注解,从一个以上所述私有协议中确定出与所述第二目标报文对应的第二目标私有协议,其中,所述第二目标私有协议的类注解包含所述第二目标协议标识信息;
利用所述第二目标私有协议的预设处理逻辑,对所述第二目标报文进行处理。
优选的,所述方法还包括:
对所述私有协议定义业务执行信息,所述业务执行信息用于表征所述私有协议与业务逻辑之间的对应关系;
在对所述第一目标报文进行编解码之后,基于所述第一目标私有协议的业务执行信息,对编解码后的所述第一目标报文执行与所述第一目标私有协议对应的第一目标业务逻辑。
优选的,所述方法的执行主体为服务器或客户端。
依据本发明的第二个方面,本发明提供一种基于Netty的私有协议编解码装置,所述装置包括:
第一定义模块,用于对基于Netty的私有协议定义类注解和字段注解,所述类注解包含用于唯一标识所述私有协议身份的协议标识信息,所述字段注解包含所述私有协议包含的字段,以及所述字段的编解码属性信息;
第一获取模块,用于获取待编解码的第一目标报文,所述第一目标报文携带有第一目标协议标识信息;
第一确定模块,用于基于所述私有协议的所述类注解,从一个以上所述私有协议中确定出与所述第一目标报文对应的第一目标私有协议,其中,所述第一目标私有协议的类注解包含所述第一目标协议标识信息;
编解码模块,用于利用所述第一目标私有协议的字段注解,对所述第一目标报文进行编解码。
优选的,所述编解码属性信息包含字段顺序、字段类型和数据类型。
依据本发明的第三个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述第一个方面中的方法步骤。
依据本发明的第四个方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如前述第一个方面中的方法步骤。
根据本发明的基于Netty的私有协议编解码方法及装置,首先,对基于Netty的私有协议定义类注解和字段注解。类注解包含用于唯一标识私有协议身份的协议标识信息,字段注解包含私有协议包含的字段,以及字段的编解码属性信息。接着,获取待编解码的第一目标报文,第一目标报文携带有第一目标协议标识信息。然后,基于私有协议的类注解,从一个以上私有协议中确定出与第一目标报文对应的第一目标私有协议,其中,第一目标私有协议的类注解包含第一目标协议标识信息。最后,利用第一目标私有协议的字段注解,对第一目标报文进行编解码。通过上述过程,开发人员只需要在私有协议中定义类注解和字段注解即可实现在Netty中对目标报文的编解码,编解码过程简单,提高了编解码的效率。同时,定义类注解和字段注解的过程独立于私有协议,因此,当编解码出现错误时,只需要修改类注解和字段注解即可,无需修改私有协议,修改过程简单方便。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考图形表示相同的部件。在附图中:
图1示出了本发明实施例中基于Netty的私有协议编解码方法的流程图;
图2示出了本发明实施例中基于Netty的私有协议编解码装置的结构图;
图3示出了本发明实施例中计算机设备的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种基于Netty的私有协议编解码方法。该方法基于Netty编程框架。该方法可以应用于客户端(即客户端作为该方法的执行主体),也可以应用于服务器(即服务器作为该方法的执行主体)。
参见图1,本发明实施例的基于Netty的私有协议编解码方法,包括:
步骤101:对基于Netty的私有协议定义类注解和字段注解,类注解包含用于唯一标识私有协议身份的协议标识信息,字段注解包含私有协议包含的字段,以及字段的编解码属性信息。
具体来讲,私有协议包含多种,其中,设备注册协议就是一种典型的私有协议。在本发明实施例中,对私有协议定义类注解和字段注解。
对于类注解而言,类注解为类使用的注解。类注解包含用于唯一识别私有协议身份的协议标识信息。通过协议标识信息能够唯一识别出私有协议。不同的私有协议,其具有的协议标识信息不同。例如,当存在第一私有协议和第二私有协议时,对第一私有协议定义类注解:0001,对第二私有协议定义类注解:0002。其中,0001即为第一私有协议的协议标识信息,0002即为第二私有协议的协议标识信息。
对于字段注解而言,字段注解为字段使用的注解。字段注解包含私有协议包含的字段。如,对于设备注册协议而言,若设备注册协议包含以下三个字段:用户名、密码和地址。那么,字段注解中包含字段用户名、字段密码和字段地址。同时,字段注解还包含上述字段的编解码属性信息,编解码属性信息用于表征字段所具有的编解码特征。其中,编解码属性信息至少包含字段顺序、字段类型和数据类型。除此之外,编解码属性信息还可以包括字段长度、字段补全方式和字段间依赖关系中的至少一种。字段间依赖关系包含本字段长度依赖前一个字段、本字段长度依赖于多个其他字段、本字段类型依赖于其他字段。需要说明的是,字段长度、字段补全方式和字段间依赖关系为可选项,对于可选项用户可以根据需要选择定义,在不需要时也可以不进行定义。
具体来讲,字段顺序表征私有协议在对报文编解码时字段映射的先后关系。如,字段注解中可以包含用户名字段的字段顺序为1,密码字段的字段顺序为2,地址字段的字段顺序为3,从而,上述字段顺序表征在利用私有协议对报文进行编解码时,进行编解码的字段的顺序依次为用户名、密码和地址。
具体来讲,字段类型表征私有协议在对报文编解码后得到的相应字段中数据的数据类型。如,针对用户名字段而言,若字段注解中字段类型设定为字符串类型,那么,通过私有协议对报文进行解码,将用户名字段所对应的报文解码为字符串类型。
具体来讲,数据类型表征私有协议编解码的方式。如,针对用户名字段而言,当用户名字段对应的待解码内容为0x41时,若字段注解中数据类型设定为字符串类型,那么,解码0x41得到的内容为A;若字段注解中数据类型设定为数字类型,那么,解码0x41得到的内容为65。不同的数据类型解码出来的内容是不同的。
具体来讲,字段长度表征报文中需要编解码映射到当前字段的字节数。如,针对用户名字段而言,若字段注解中字段长度设定为3,那么,取出报文中对应的3个字节用于编解码。
具体来讲,字段补全方式用于固定长度的字段,表征当内容不足时数据补全所采用的方式。
具体来讲,本字段长度依赖前一个字段表征本字段的长度由前一字段的长度确定。本字段长度依赖于多个其他字段表征本字段的长度是由多个其他字段的值来确定的。本字段类型依赖于其他字段表征本字段支持动态数据格式转化,本字段的类型需要依赖于其他字段。
对于动态数据格式转换而言,下面举例说明:若针对X字段的字段注解声明本字段的字段类型依赖于Y字段,那么通过Y字段的值来获取定义的映射关系中本字段的类型。其中,预先设定Y字段的值与X字段类型的对应关系。例如,设定Y字段的值为A时,X字段类型为字符串类型,设定Y字段的值为B时,X字段类型为数字类型。那么,在解码过程中,先解码Y字段得到Y字段的值。当解码Y字段得到其值为A时,则表明X字段的字段类型为字符串类型,则使用字符串解码方式解码X字段。当解码Y字段得到其值为B时,则表明X字段的字段类型为数字类型,则使用数字解码方式解码X字段。当解码Y字段得到其值为C时,因为没有与C对应的预设字段类型关系,因此无法解析X字段。
需要说明的是,对于字段补全方式和字段间依赖关系而言,也可以设定为不需要补全,或字段间不存在依赖关系。
在完成步骤101之后,执行步骤102:获取待编解码的第一目标报文,第一目标报文携带有第一目标协议标识信息。
在完成步骤102之后,执行步骤103:基于私有协议的类注解,从一个以上私有协议中确定出与第一目标报文对应的第一目标私有协议,其中,第一目标私有协议的类注解包含第一目标协议标识信息。
具体来讲,通常目标报文隐藏在目标数据中,而对于如何从目标数据中提取目标报文,可以采用协议解析器。协议解析器能够固定报文首尾标识。从而,通过协议解析器将目标数据的首尾标识进行固定,能够截取出一条完整的目标报文。该目标报文也即待编解码的报文。
进一步,在需要以预设私有协议对目标报文进行编解码时,向目标报文中添加该预设私有协议的协议标识信息(即目标协议标识信息)。进而,在得到目标报文之后,通过目标报文携带的目标协议标识信息能够确定出采用何种私有协议对目标报文进行编解码。例如,针对第一目标报文而言,第一目标报文携带有第一目标协议标识信息(如0001)。那么,在类注解中查找协议标识信息为0001的私有协议。若设备注册协议的协议标识信息为0001,那么,将设备注册协议确定为与第一目标报文对应的第一目标私有协议。后续将会利用第一目标私有协议的字段注解对第一目标报文进行编解码。
在完成步骤103之后,执行步骤104:利用第一目标私有协议的字段注解,对第一目标报文进行编解码。
具体来讲,在确定出第一目标私有协议之后,利用与第一目标私有协议对应的字段注解中的编解码属性信息对第一目标报文进行编解码。
下面将列举一例子对编解码过程进行进一步说明:
当第一目标报文为:000161626330316164647230时,可以根据第一目标报文的前两个字节长度确定出与第一目标报文对应的第一目标私有协议的私有协议标识信息为0001。从而将私有协议标识信息为0001的设备注册协议作为第一目标私有协议。进而利用设备注册协议对第一目标报文进行编解码。
进一步,当设备注册协议的字段注解中包含以下编解码属性信息:协议包含用户名字段、密码字段和地址字段;用户名字段的顺序为1,用户名字段的字节长度为3;密码字段的顺序为2,密码字段的字节长度为2;地址字段的字节长度为5。那么,在利用设备注册协议对第一目标报文进行编解码时,具体为:首先,对第一目标报文中0001之后的三个字节长度616263进行编解码,得到abc,abc与用户名字段对应。接着,对616263之后的两个字节长度3031进行编解码,得到12,12与密码字段对应。最后,对3031之后的五个字节长度6164647230进行编解码,得到addr1,addr1与地址字段对应。
需要说明的是,在本发明实施例中,当编解码属性信息发生改变时,如字段顺序、字段类型、数据类型、字段长度、字段补全方式和字段间依赖关系中的一个或多个信息发生改变时,编解码得到的数据不同。
在本发明实施例中,私有协议除了请求和应答消息本身以外,还可以具有控制和管理等处理功能。从而,所述方法还可以包括:
步骤201:对私有协议定义预设处理逻辑,预设处理逻辑用于对报文进行预设处理操作。
具体来讲,预设处理逻辑可以为基于报文起止标识、加密规则、校验处理、转义处理和心跳处理等处理操作的逻辑。用户可以基于实际应用在上述处理逻辑中进行自定义。进一步来讲,对于私有协议而言,其除了被定义类注解和字段注解,还可以被定义预设处理逻辑,从而,类注解、字段注解和预设处理逻辑之间具有对应关系。例如,对于设备注册协议而言,除了对其定义类注解和字段注解以外,还可以对其定义预设处理逻辑,预设处理逻辑可以为校验处理逻辑。校验处理逻辑用于对数据进行验证,具体地,校验处理逻辑的一种具体实现方式可以为字节异或计算。
在完成步骤201之后,执行步骤202:获取待处理的第二目标报文,第二目标报文携带有第二目标协议标识信息。
在完成步骤202之后,执行步骤203:基于私有协议的类注解,从一个以上私有协议中确定出与第二目标报文对应的第二目标私有协议,其中,第二目标私有协议的类注解包含第二目标协议标识信息。
具体来讲,步骤202和步骤203的执行过程,与步骤102和步骤103执行过程相同,此处不再对其原理进行详细说明。仅列举一例子进行示意性说明:若第二目标报文携带有0001的协议标识信息,那么通过查找,可以将协议标识信息为0001的设备注册协议作为与第二目标报文对应的第二目标私有协议。
需要说明的是,第二目标报文与第一目标报文的不同之处在于:第二目标报文为需要以预设处理逻辑进行处理的报文,而第一目标报文为需要编解码的报文。本发明实施例区分出第一目标报文和第二目标报文,仅是为了更加清楚对这两种情况进行分别说明。在实际应用中,对于一个目标报文而言,其可以同时需要进行编解码以及以预设处理逻辑处理,而在这种情况下,将不区分第一目标报文和第二目标报文,下文中将会对此情况进行举例说明。
在完成步骤203之后,执行步骤204:利用第二目标私有协议的预设处理逻辑,对第二目标报文进行处理。
具体来讲,利用与第二目标私有协议对应的预设处理逻辑对第二目标报文进行处理。下面将以预设处理逻辑为校验处理逻辑对自定义处理逻辑的过程进行详细说明:
若第二目标私有协议为设备注册协议,对设备注册协议定义字节异或计算的校验处理逻辑。那么,根据字节异或计算进行校验处理。例如,针对000161626330316164647230的报文而言,对其进行异或计算,得到校验码为43,并将43拼接到报文的最后,得到00016162633031616464723043。若第二目标报文的报文内容为000161626330316164647230XX,在验证时,若XX为43时,表明第二目标报文校验通过。若XX不是43,表明第二目标报文验证失败。即,当第二目标报文具体为00016162633031616464723043时,表明第二目标报文验证通过,当第二目标报文具体为00016162633031616464723028时,表明第二目标报文验证失败。
下面对不区分第一目标报文和第二目标报文的方案进行详细说明。
首先,获取待编解码和待处理的目标报文,目标报文携带有目标协议标识信息。
接着,基于私有协议的类注解,从一个以上私有协议中确定出与目标报文对应的目标私有协议,其中,目标私有协议的类注解包含目标协议标识信息。
然后,利用目标私有协议的字段注解对目标报文进行编解码,以及,利用目标私有协议的预设处理逻辑对目标报文进行处理。
例如,当目标报文为:00016162633031616464723043时,可以根据目标报文的前两个字节长度确定出与目标报文对应的目标私有协议的私有协议标识信息为0001。从而将私有协议标识信息为0001的设备注册协议作为目标私有协议。进而,利用设备注册协议的字段注解对目标报文进行编解码,由于编解码过程在前文中已做说明,此处不再赘述。同时,利用设备注册协议的校验处理逻辑对目标报文进行验证处理,由于验证处理过程在前文中已做说明,此处不再赘述。
在本发明实施例中,为了实现目标报文的自动转发,所述方法还包括:
步骤301:对私有协议定义业务执行信息,业务执行信息用于表征私有协议与业务逻辑之间的对应关系。
步骤302:在对第一目标报文进行编解码之后,基于第一目标私有协议的业务执行信息,对编解码后的第一目标报文执行与第一目标私有协议对应的第一目标业务逻辑。
具体来讲,对私有协议定义业务执行信息,业务执行信息用于表征私有协议与业务逻辑之间的对应关系。例如,对第一私有协议定义第一业务执行信息,第一业务执行信息表征第一私有协议与第一业务逻辑存在对应关系,对第二私有协议定义第二业务执行信息,第二业务执行信息表征第二私有协议与第二业务逻辑存在对应关系。进而,当确定出与第一目标报文对应的私有协议为第一私有协议之后,对第一目标报文进行编解码之后,对第一目标报文执行第一业务逻辑。当确定出与第一目标报文对应的私有协议为第二私有协议之后,对第一目标报文进行编解码之后,对第一目标报文执行第二业务逻辑。
需要说明的是,结合服务器和客户端而言,本发明实施例的基于Netty的私有协议编解码方法可以应用在服务器向客户端发送报文的过程中,也可以应用在客户端向服务器发送报文的过程中。而在服务器和客户端之间进行报文的传输过程中,需要在服务器和客户端之间建立连接通道。建立连接通道的过程包含指定端口,启动长连接服务器,当客户端连接到服务器时,记录客户端和长连接的关系,用于后续和对应设备的通信。
需要说明的是,本发明实施例的基于Netty的私有协议编解码方法可以以编解码模块的方式实现。即,通过开发编解码模块,使得编解码模块能够实现上述方法对应的各个方法步骤。因此,对私有协议的定义,包括类注解、字段注解、预设处理逻辑和业务执行信息的定义,均在编解码模块中完成。由于本发明实施例的定义过程独立于私有协议,从而,使得当编解码出现错误时,只需要对编解码模块修改即可,无需对每个私有协议都进行修改,降低了维护成本。
根据本发明的基于Netty的私有协议编解码方法及装置,首先,对基于Netty的私有协议定义类注解和字段注解。类注解包含用于唯一标识私有协议身份的协议标识信息,字段注解包含私有协议包含的字段,以及字段的编解码属性信息。接着,获取待编解码的第一目标报文,第一目标报文携带有第一目标协议标识信息。然后,基于私有协议的类注解,从一个以上私有协议中确定出与第一目标报文对应的第一目标私有协议,其中,第一目标私有协议的类注解包含第一目标协议标识信息。最后,利用第一目标私有协议的字段注解,对第一目标报文进行编解码。通过上述过程,开发人员只需要在私有协议中定义类注解和字段注解即可实现在Netty中对目标报文的编解码,编解码过程简单,提高了编解码的效率。
根据本发明的基于Netty的私有协议编解码方法及装置,通过对私有协议定义预设处理逻辑,在确定出目标报文对应的私有协议之后,利用私有协议的预设处理逻辑可以对目标报文进行与预设处理逻辑对应的处理过程,不仅实现了对处理逻辑的自定义,还能够实现自动按照自定义处理逻辑对目标报文进行处理。
根据本发明的基于Netty的私有协议编解码方法及装置,通过对私有协议定义业务执行信息,在确定出目标报文对应的私有协议之后,利用私有协议的业务执行信息对目标报文执行对应的业务逻辑,实现了自动对目标报文执行对应的业务逻辑的技术效果。
基于同一发明构思,本发明实施例还提供一种基于Netty的私有协议编解码装置,如图2所示,所述装置包括:
第一定义模块201,用于对基于Netty的私有协议定义类注解和字段注解,所述类注解包含用于唯一标识所述私有协议身份的协议标识信息,所述字段注解包含所述私有协议包含的字段,以及所述字段的编解码属性信息;
第一获取模块202,用于获取待编解码的第一目标报文,所述第一目标报文携带有第一目标协议标识信息;
第一确定模块203,用于基于所述私有协议的所述类注解,从一个以上所述私有协议中确定出与所述第一目标报文对应的第一目标私有协议,其中,所述第一目标私有协议的类注解包含所述第一目标协议标识信息;
编解码模块204,用于利用所述第一目标私有协议的字段注解,对所述第一目标报文进行编解码。
优选的,所述编解码属性信息包含字段顺序、字段类型和数据类型。
优选的,所述编解码属性信息还包含字段长度、字段补全方式和字段间依赖关系中的至少一种。
优选的,所述装置还包括:
第二定义模块,用于对所述私有协议定义预设处理逻辑,所述预设处理逻辑用于对报文进行预设处理操作;
第二获取模块,用于获取待处理的第二目标报文,所述第二目标报文携带有第二目标协议标识信息;
第二确定模块,用于基于所述私有协议的所述类注解,从一个以上所述私有协议中确定出与所述第二目标报文对应的第二目标私有协议,其中,所述第二目标私有协议的类注解包含所述第二目标协议标识信息;
第一处理模块,用于利用所述第二目标私有协议的预设处理逻辑,对所述第二目标报文进行处理。
优选的,所述装置还包括:
第三定义模块,用于对所述私有协议定义业务执行信息,所述业务执行信息用于表征所述私有协议与业务逻辑之间的对应关系;
第二处理模块,用于在对所述第一目标报文进行编解码之后,基于所述第一目标私有协议的业务执行信息,对编解码后的所述第一目标报文执行与所述第一目标私有协议对应的第一目标业务逻辑。
基于同一发明构思,本发明第三实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述第一实施例所述的方法步骤。
基于同一发明构思,本发明第四实施例还提供了一种计算机设备,如图3所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机设备可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以计算机设备为手机为例:
图3示出的是与本发明实施例提供的计算机设备相关的部分结构的框图。参考图3,该计算机设备包括:存储器301和处理器302。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对计算机设备的各个构成部件进行具体的介绍:
存储器301可用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储数据(比如音频数据、电话本等)等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器302是计算机设备的控制中心,通过运行或执行存储在存储器301内的软件程序和/或模块,以及调用存储在存储器301内的数据,执行各种功能和处理数据。可选的,处理器302可包括一个或多个处理单元;优选的,处理器302可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
在本发明实施例中,该计算机设备所包括的处理器302可以具有前述实施例中任一方法步骤所对应的功能。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种基于Netty的私有协议编解码方法,其特征在于,所述方法包括:
对基于Netty的私有协议定义类注解和字段注解,所述类注解包含用于唯一标识所述私有协议身份的协议标识信息,所述字段注解包含所述私有协议包含的字段,以及所述字段的编解码属性信息;
获取待编解码的第一目标报文,所述第一目标报文携带有第一目标协议标识信息;
基于所述私有协议的所述类注解,从一个以上所述私有协议中确定出与所述第一目标报文对应的第一目标私有协议,其中,所述第一目标私有协议的类注解包含所述第一目标协议标识信息;
利用所述第一目标私有协议的字段注解,对所述第一目标报文进行编解码。
2.如权利要求1所述的方法,其特征在于,所述编解码属性信息包含字段顺序、字段类型和数据类型。
3.如权利要求2所述的方法,其特征在于,所述编解码属性信息还包含字段长度、字段补全方式和字段间依赖关系中的至少一种。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
对所述私有协议定义预设处理逻辑,所述预设处理逻辑用于对报文进行预设处理操作;
获取待处理的第二目标报文,所述第二目标报文携带有第二目标协议标识信息;
基于所述私有协议的所述类注解,从一个以上所述私有协议中确定出与所述第二目标报文对应的第二目标私有协议,其中,所述第二目标私有协议的类注解包含所述第二目标协议标识信息;
利用所述第二目标私有协议的预设处理逻辑,对所述第二目标报文进行处理。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
对所述私有协议定义业务执行信息,所述业务执行信息用于表征所述私有协议与业务逻辑之间的对应关系;
在对所述第一目标报文进行编解码之后,基于所述第一目标私有协议的业务执行信息,对编解码后的所述第一目标报文执行与所述第一目标私有协议对应的第一目标业务逻辑。
6.如权利要求1所述的方法,其特征在于,所述方法的执行主体为服务器或客户端。
7.一种基于Netty的私有协议编解码装置,其特征在于,所述装置包括:
第一定义模块,用于对基于Netty的私有协议定义类注解和字段注解,所述类注解包含用于唯一标识所述私有协议身份的协议标识信息,所述字段注解包含所述私有协议包含的字段,以及所述字段的编解码属性信息;
第一获取模块,用于获取待编解码的第一目标报文,所述第一目标报文携带有第一目标协议标识信息;
第一确定模块,用于基于所述私有协议的所述类注解,从一个以上所述私有协议中确定出与所述第一目标报文对应的第一目标私有协议,其中,所述第一目标私有协议的类注解包含所述第一目标协议标识信息;
编解码模块,用于利用所述第一目标私有协议的字段注解,对所述第一目标报文进行编解码。
8.如权利要求7所述的装置,其特征在于,所述编解码属性信息包含字段顺序、字段类型和数据类型。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一权利要求所述的方法步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一权利要求所述的方法步骤。
CN201910645412.3A 2019-07-17 2019-07-17 基于Netty的私有协议编解码方法及装置 Active CN110381056B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910645412.3A CN110381056B (zh) 2019-07-17 2019-07-17 基于Netty的私有协议编解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910645412.3A CN110381056B (zh) 2019-07-17 2019-07-17 基于Netty的私有协议编解码方法及装置

Publications (2)

Publication Number Publication Date
CN110381056A true CN110381056A (zh) 2019-10-25
CN110381056B CN110381056B (zh) 2021-08-03

Family

ID=68253627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910645412.3A Active CN110381056B (zh) 2019-07-17 2019-07-17 基于Netty的私有协议编解码方法及装置

Country Status (1)

Country Link
CN (1) CN110381056B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111224864A (zh) * 2020-01-14 2020-06-02 平安国际智慧城市科技股份有限公司 消息传输方法、装置、计算机设备和存储介质
CN111399902A (zh) * 2020-03-25 2020-07-10 北京字节跳动网络技术有限公司 客户端源文件处理方法、装置、可读介质与电子设备
CN114416032A (zh) * 2021-12-29 2022-04-29 中国电信股份有限公司 一种服务处理方法、装置、电子设备及可读介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020064A (zh) * 2011-09-20 2013-04-03 佳都新太科技股份有限公司 一种通过注解方式生成查询条件的方法和配置
CN103399734A (zh) * 2013-07-10 2013-11-20 北京慧点科技股份有限公司 生成rest服务和rest实现的方法及对应的设备
CN105049281A (zh) * 2015-06-25 2015-11-11 浪潮(北京)电子信息产业有限公司 一种报文解析方法和设备
US20160219089A1 (en) * 2015-01-23 2016-07-28 Ebay Inc. Systems and methods for messaging and processing high volume data over networks
CN106302442A (zh) * 2016-08-12 2017-01-04 广州慧睿思通信息科技有限公司 一种基于Java语言的网络通讯数据包解析方法
CN107835178A (zh) * 2017-11-13 2018-03-23 北京奇艺世纪科技有限公司 一种多协议服务通信方法、装置以及电子设备
CN108040040A (zh) * 2017-11-30 2018-05-15 北京锐安科技有限公司 一种应用协议报文的自动化解析方法和装置
CN108696381A (zh) * 2017-04-12 2018-10-23 腾讯科技(深圳)有限公司 一种协议配置方法及装置
CN109729149A (zh) * 2018-12-03 2019-05-07 国云科技股份有限公司 一种基于注解的微服务框架实现方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020064A (zh) * 2011-09-20 2013-04-03 佳都新太科技股份有限公司 一种通过注解方式生成查询条件的方法和配置
CN103399734A (zh) * 2013-07-10 2013-11-20 北京慧点科技股份有限公司 生成rest服务和rest实现的方法及对应的设备
US20160219089A1 (en) * 2015-01-23 2016-07-28 Ebay Inc. Systems and methods for messaging and processing high volume data over networks
CN105049281A (zh) * 2015-06-25 2015-11-11 浪潮(北京)电子信息产业有限公司 一种报文解析方法和设备
CN106302442A (zh) * 2016-08-12 2017-01-04 广州慧睿思通信息科技有限公司 一种基于Java语言的网络通讯数据包解析方法
CN108696381A (zh) * 2017-04-12 2018-10-23 腾讯科技(深圳)有限公司 一种协议配置方法及装置
CN107835178A (zh) * 2017-11-13 2018-03-23 北京奇艺世纪科技有限公司 一种多协议服务通信方法、装置以及电子设备
CN108040040A (zh) * 2017-11-30 2018-05-15 北京锐安科技有限公司 一种应用协议报文的自动化解析方法和装置
CN109729149A (zh) * 2018-12-03 2019-05-07 国云科技股份有限公司 一种基于注解的微服务框架实现方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111224864A (zh) * 2020-01-14 2020-06-02 平安国际智慧城市科技股份有限公司 消息传输方法、装置、计算机设备和存储介质
CN111399902A (zh) * 2020-03-25 2020-07-10 北京字节跳动网络技术有限公司 客户端源文件处理方法、装置、可读介质与电子设备
CN111399902B (zh) * 2020-03-25 2023-08-08 北京字节跳动网络技术有限公司 客户端源文件处理方法、装置、可读介质与电子设备
CN114416032A (zh) * 2021-12-29 2022-04-29 中国电信股份有限公司 一种服务处理方法、装置、电子设备及可读介质

Also Published As

Publication number Publication date
CN110381056B (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
CN110249307A (zh) 用于在区块链上执行原生合约的系统和方法
CN105512881B (zh) 一种基于二维码完成支付的方法及终端
CN110381056A (zh) 基于Netty的私有协议编解码方法及装置
US20110016451A1 (en) Method and system for generating test cases for a software application
CN112256321A (zh) 静态库打包方法、装置、计算机设备和存储介质
CN111143358A (zh) 报表配置方法和系统
CN108196879A (zh) 业务处理方法、装置、设备及计算机可读存储介质
EP4248306A1 (en) Constructing executable program code based on sequence codes
CN103139761B (zh) 一种信息实时展示的方法和移动通讯终端
TW201232404A (en) Software development
WO2018032982A1 (zh) 电子支付过程中资金交易路径的检测方法和装置
CN109492181A (zh) 页面跳转方法、装置、计算机设备和存储介质
CN106055375A (zh) 应用程序安装方法及装置
CN105993156A (zh) 服务器访问验证方法以及装置
CN109213681A (zh) 测试系统、方法、设备及可读存储介质
CN107846449B (zh) 调用系统工具的方法、装置、可读存储介质及设备
CN107729001B (zh) 一种表达式处理方法和装置
CN106843818A (zh) 一种业务模型生成方法及装置
US10606569B2 (en) Declarative configuration elements
US10289978B2 (en) Method and apparatus for integrating health care payers and provider systems with health care transaction systems using a single HIPAA EDI response generation component
KR102165037B1 (ko) 코드 커버리지 측정 장치, 코드 커버리지 측정 장치의 코드 커버리지 측정 방법, 및 코드 커버리지 측정 시스템
US11928051B2 (en) Test space sampling for model-based biased random system test through rest API
CN104378393A (zh) 一种资源分享方法和相应的装置
CN110401925A (zh) 一种通讯消息的生成方法及装置
CN105550022B (zh) 一种业务数据的处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Netty based private protocol codec method and device

Effective date of registration: 20221021

Granted publication date: 20210803

Pledgee: Industrial Bank Co.,Ltd. Shanghai West sub branch

Pledgor: TAIMA INFORMATION NETWORK TECHNOLOGY Co.,Ltd.

Registration number: Y2022310000291

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230926

Granted publication date: 20210803

Pledgee: Industrial Bank Co.,Ltd. Shanghai West sub branch

Pledgor: TAIMA INFORMATION NETWORK TECHNOLOGY Co.,Ltd.

Registration number: Y2022310000291

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Private Protocol Encoding and Decoding Method and Device Based on Netty

Effective date of registration: 20231016

Granted publication date: 20210803

Pledgee: Industrial Bank Co.,Ltd. Shanghai West sub branch

Pledgor: TAIMA INFORMATION NETWORK TECHNOLOGY Co.,Ltd.

Registration number: Y2023310000647

PE01 Entry into force of the registration of the contract for pledge of patent right