基于通用协议的消息分发方法、装置、设备及存储介质制造方法及图纸

技术编号:21798736 阅读:21 留言:0更新日期:2019-08-07 10:24
本发明专利技术实施例公开了一种基于通用协议的消息分发方法、装置、设备及存储介质。该方法包括:消息分发对象获取待分发消息,并确定待分发消息对应的消息接收对象,其中,消息接收对象基于通用消息分发协议而生成,通用消息分发协议包含通用消息分发函数,通用消息分发函数的输入参数的数据类型为具有目标数据结构的目标字符串类型,目标数据结构中包含预设消息标识字段;消息分发对象将待分发消息转换为目标字符串类型,生成目标分发消息;消息分发对象以目标分发消息为输入参数,调用消息接收对象中的通用消息分发函数,将目标分发消息分发至消息接收对象。通过上述技术方案,实现了不同功能对应的各种消息的直达式分发,提高了代码可维护性。

Message Distribution Method, Device, Equipment and Storage Medium Based on General Protocol

【技术实现步骤摘要】
基于通用协议的消息分发方法、装置、设备及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种基于通用协议的消息分发方法、装置、设备及存储介质。
技术介绍
目前,在基于Android系统开发的应用程序中,各种消息的分发方式除了将消息层层传递直至接收消息的目标视图的传统式的消息分发方式之外,还有一种基于专用协议的消息分发方式,其需要构建与消息功能对应的消息直达式传输的专用协议,通过该专用协议将消息直接传输至目标视图。基于专用协议的消息分发方式相对于传统的消息分发方式,能够很大程度上减少消息的传递次数,从而减少消息传输所需的系统资源。但是基于专用协议的消息分发方式需要针对每种功能设计相应的专用协议,例如,针对弹幕功能设计适合弹幕消息的数据类型的弹幕消息分发协议,针对颜色更新功能设计适合颜色消息的数据类型的颜色消息分发协议,针对进度条更新功能设计适合进度的数据类型的进度消息分发协议等。当消息功能增多时,便需要设计并维护大量的专用协议,无疑会降低代码可维护性。
技术实现思路
本专利技术实施例提供一种基于通用协议的消息分发方法、装置、设备及存储介质,以实现不同功能对应的各种消息的直达式分发,提高代码可维护性。第一方面,本专利技术实施例提供了一种基于通用协议的消息分发方法,包括:消息分发对象获取待分发消息,并确定所述待分发消息对应的消息接收对象,其中,所述消息接收对象基于通用消息分发协议而生成,所述通用消息分发协议包含通用消息分发函数,所述通用消息分发函数的输入参数的数据类型为具有目标数据结构的目标字符串类型,所述目标数据结构中包含预设消息标识字段;所述消息分发对象将所述待分发消息转换为所述目标字符串类型,生成目标分发消息;所述消息分发对象以所述目标分发消息为输入参数,调用所述消息接收对象中的通用消息分发函数,将所述目标分发消息分发至所述消息接收对象。第二方面,本专利技术实施例还提供了一种基于通用协议的消息分发装置,该装置包括:待分发消息获取模块,配置于消息分发器,用于获取待分发消息,并确定所述待分发消息对应的消息接收对象,其中,所述消息接收对象基于通用消息分发协议而生成,所述通用消息分发协议包含通用消息分发函数,所述通用消息分发函数的输入参数的数据类型为具有目标数据结构的目标字符串类型,所述目标数据结构中包含预设消息标识字段;目标分发消息生成模块,配置于消息分发器,用于将所述待分发消息转换为所述目标字符串类型,生成目标分发消息;消息分发模块,配置于消息分发器,用于以所述目标分发消息为输入参数,调用所述消息接收对象中的通用消息分发函数,将所述目标分发消息分发至所述消息接收对象。第三方面,本专利技术实施例还提供了一种设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例所提供的基于通用协议的消息分发方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本专利技术任意实施例所提供的基于通用协议的消息分发方法。本专利技术实施例通过预先设计一种能够快速解析消息标识及便于数据流转的通用数据类型,即具有目标数据结构的目标字符串类型,为后续实现不同功能对应的不同数据类型的消息的统一分发提供基础。通过消息分发对象将获取到的待分发消息转换为目标字符串类型,生成目标分发消息,进而通过基于通用消息分发协议而生成的消息接收对象中的通用消息分发函数,将目标分发消息直接传输至消息接收对象,实现了不同功能对应的各种数据类型的消息均基于同一个通用消息分发协议来直达式分发,解决了不同功能的消息分发需要设计不同的分发协议而造成的协议过多和不易维护的问题,提高了应用程序中消息分发的稳定性及程序代码的可维护性。附图说明图1是本专利技术实施例一中的一种基于通用协议的消息分发方法的流程图;图2是本专利技术实施例二中的一种基于通用协议的消息分发方法的流程图;图3是本专利技术实施例三中的一种基于通用协议的消息分发方法的流程图;图4是本专利技术实施例四中的一种基于通用协议的消息分发装置的结构示意图;图5是本专利技术实施例五中的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一本实施例提供的基于通用协议的消息分发方法可适用于基于Android平台开发的应用程序内的消息的传输。该方法可以由基于通用协议的消息分发装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在配置有Android系统的设备中,例如典型的是用户终端设备,例如手机、平板电脑或智能电视等。参见图1,本实施例的方法包括:S110、消息分发对象获取待分发消息,并确定待分发消息对应的消息接收对象。其中,消息分发对象是指用于执行消息分发操作的实例化对象。消息接收对象则是指用于接收消息的实例化对象,例如可以是显示消息的视图、处理消息的业务控制器或存储消息的数据管理器等。待分发消息是指需要传输至消息接收对象的消息,其可以是应用程序中不同功能模块对应的消息,例如可以是弹幕消息、颜色变更消息或进度条进度变更消息等。由于本专利技术实施例中的消息分发操作是基于协议的直达式分发,故每个需要接收消息的对象(消息接受对象)都应当事先继承用于消息分发的协议,并实现协议内部函数,即消息接收对象基于通用消息分发协议而生成,通用消息分发协议包含通用消息分发函数,通用消息分发函数的输入参数的数据类型为具有目标数据结构的目标字符串类型,目标数据结构中包含预设消息标识字段。其中,通用消息分发协议为预先定义的消息分发的通用性协议,其内至少包含一个用于实现消息分发功能的通用消息分发函数,例如通用消息分发协议的实现示例代码可以为publicinterfaceIOnChange{voidonChangeState(Stringmsg)},IOnChange为协议名称,onChangeState为通用消息分发函数的函数名称,msg为通用消息分发函数的输入参数,其是一个目标字符串类型的数据。该通用消息分发函数的函数输入参数的数据类型为预先设定的通用数据类型,即具有目标数据结构的目标字符串类型。将通用数据类型设置为字符串类型,是因为其属于一种基础数据类型,能够方便数据快速流转。另外,每种消息都有对应的功能,消息接收对象接收之后需要先识别该消息的类型再执行相应的处理,故在目标数据结构中设置一个存储消息标识的字段(即字符串类型的预设消息标识字段),来存储能够唯一表征一个消息的消息标识。上述目标字符串类型可以是系统提供的通用数据类型,例如Java对象简谱(JavaScriptObjectNotation,JSON),也可以是自定义的数据类型,只要其满足能够快速解析消息标识(如消息标识字段独立于其他字段)和便于数据流转的特性即可。更优选的是,目标数据结构中的消息标识要便于快速解析,而消息内容则尽量保持原有数据类型,以减少消息接收对象接收消息后的消息二次解析(即转换至消息原本的数据类型)过程,或者采用二次解析过程较为快捷的数据结构。具体地本文档来自技高网...

【技术保护点】
1.一种基于通用协议的消息分发方法,其特征在于,包括:消息分发对象获取待分发消息,并确定所述待分发消息对应的消息接收对象,其中,所述消息接收对象基于通用消息分发协议而生成,所述通用消息分发协议包含通用消息分发函数,所述通用消息分发函数的输入参数的数据类型为具有目标数据结构的目标字符串类型,所述目标数据结构中包含预设消息标识字段;所述消息分发对象将所述待分发消息转换为所述目标字符串类型,生成目标分发消息;所述消息分发对象以所述目标分发消息为输入参数,调用所述消息接收对象中的通用消息分发函数,将所述目标分发消息分发至所述消息接收对象。

【技术特征摘要】
1.一种基于通用协议的消息分发方法,其特征在于,包括:消息分发对象获取待分发消息,并确定所述待分发消息对应的消息接收对象,其中,所述消息接收对象基于通用消息分发协议而生成,所述通用消息分发协议包含通用消息分发函数,所述通用消息分发函数的输入参数的数据类型为具有目标数据结构的目标字符串类型,所述目标数据结构中包含预设消息标识字段;所述消息分发对象将所述待分发消息转换为所述目标字符串类型,生成目标分发消息;所述消息分发对象以所述目标分发消息为输入参数,调用所述消息接收对象中的通用消息分发函数,将所述目标分发消息分发至所述消息接收对象。2.根据权利要求1所述的方法,其特征在于,所述目标数据结构包含结构开始符、消息标识键信息、与所述消息标识键信息对应的消息标识值信息、结构内容分割符、消息内容开始符、消息内容键值对信息及键值对分隔符、消息内容结束符和结构结束符,其中,所述结构开始符和所述结构结束符、以及所述消息内容开始符和所述消息内容结束符均为成对的字符,且所述结构开始符、所述消息内容开始符与所述目标数据结构中的剩余字符均不同。3.根据权利要求2所述的方法,其特征在于,将所述待分发消息转换为所述目标字符串类型,生成目标分发消息包括:所述消息分发对象调用动态字符串类生成动态字符串对象;所述消息分发对象以所述结构开始符、所述待分发消息对应的消息标识字段、所述消息标识字段对应的消息标识、所述结构内容分割符和所述消息内容开始符为输入参数,调用所述动态字符串对象的字符串连接函数,将所述结构开始符、所述消息标识字段、所述消息标识和所述结构内容分割符添加至所述动态字符串对象;所述消息分发对象遍历所述待分发消息,并分别将每次遍历获得的键值对信息和所述键值对分隔符为输入参数,调用所述动态字符串对象的所述字符串连接函数,将各所述键值对信息及各所述键值对分隔符添加至所述动态字符串对象;所述消息分发对象以所述消息内容结束符和所述结构结束符为输入参数,调用所述动态字符串对象的所述字符串连接函数,将所述消息内容结束符和所述结构结束符添加至所述动态字符串对象;所述消息分发对象调用所述动态字符串对象的字符串生成函数,生成所述目标字符串类型的目标字符串对象,作为所述目标分发消息。4.根据权利要求3所述的方法,其特征在于,在所述消息分发对象以所述目标分发消息为输入参数,调用所述消息接收对象中的通用消息分发函数,将所述目标分发消息分发至所述消息接收对象之后,还包括:所述消息接收对象分别调用所述目标字符串对象的字符串提取函数和字符串分割函数,获得所述目标字符串对象中的所述消息标识和各所述键值对信息,并依据所述消息标识和各所述键值对信息,触发执行所述消息标识对应的消息处理功能。5.根据权利要求1所述的方法,其特征在于,所述目标数据结构为Java对象简谱。6.根据权利要求5所述的方法,其特征在于...

【专利技术属性】
技术研发人员:张磊
申请(专利权)人:武汉斗鱼鱼乐网络科技有限公司
类型:发明
国别省市:湖北,42

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

1