首页> 中国专利> 一种适用于不同推送SDK的统一接入方法及系统

一种适用于不同推送SDK的统一接入方法及系统

摘要

本发明涉及计算机技术领域,公开了一种适用于不同推送SDK的统一接入方法,包括:步骤S1:接收推送消息,并将每条推送消息封装成一单独的Msg结构体,所述推送消息包括消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容;步骤S2:对所有的Msg结构体进行过滤,去除相同的Msg结构体;步骤S3:将经过过滤的Msg结构体广播给应用程序。本发明还公开了一种适用于不同推送SDK的统一接入系统。本发明用于对不同推送SDK的推送消息进行统一接入。

著录项

  • 公开/公告号CN106549937A

    专利类型发明专利

  • 公开/公告日2017-03-29

    原文格式PDF

  • 申请/专利权人 武汉斗鱼网络科技有限公司;

    申请/专利号CN201610881283.4

  • 发明设计人 张磊;

    申请日2016-10-09

  • 分类号H04L29/06;H04L29/08;G06F9/44;

  • 代理机构武汉智权专利代理事务所(特殊普通合伙);

  • 代理人张凯

  • 地址 430000 湖北省武汉市武汉东湖开发区软件园东路1号软件产业4.1期B1栋11楼

  • 入库时间 2023-06-19 01:52:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-17

    授权

    授权

  • 2017-04-26

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20161009

    实质审查的生效

  • 2017-03-29

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,具体涉及一种适用于不同推送SDK的统一接入方法和一种适用于不同推送SDK的统一接入系统。

背景技术

随着科学技术的飞速发展,智能手机设备也随之高速发展,涌现出诸多的手机厂商。对于消息的推送收发,每个手机厂商均有自己的一套推送SDK(Software DevelopmentKit,软件开发工具包),即拥有一套自己的集成方案,对于应用程序的开发者来说,当应用程序安装于不同厂商的手机上时,均需要对应用程序进行相应修改,使得应用程序适配厂商的集成方案,极大地提高了开发者的工作量,且因需要开发者熟悉不同的集成方案,使得开发者在应用程序编写时极易出错。

发明内容

针对现有技术中存在的缺陷,本发明的目的在于提供一种适用于不同推送SDK的统一接入方法和一种适用于不同推送SDK的统一接入系统,用于对不同推送SDK的推送消息进行统一接入。

为达到以上目的,本发明采取的技术方案是:包括:

步骤S1:接收推送消息,并将每条推送消息封装成一单独的Msg结构体,所述推送消息包括消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容;

步骤S2:对所有的Msg结构体进行过滤,去除相同的Msg结构体;

步骤S3:将经过过滤的Msg结构体广播给应用程序。

在上述技术方案的基础上,内容相同的推送消息的Msg结构体相同,内容不同的推送消息的Msg结构体不同。

在上述技术方案的基础上,所述推送消息的封装步骤为:

步骤S1.1:对推送消息进行解析,获取推送消息的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容;

步骤S1.2:将推送消息的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容封装到一单独的Msg结构体中。

在上述技术方案的基础上,对所有Msg结构体的过滤步骤为:

步骤S2.1:将所有Msg结构体存入一集合中;

步骤S2.2:逐个读取集合中的Msg结构体,并将读取出的Msg结构体中的消息唯一标示符与还存在于集合中的Msg结构体的消息唯一标示符进行比对,若比对到相同的消息唯一标示符,则丢弃当前读取出的Msg结构体,若没比对到相同的消息唯一标示符,则将当前读取出的Msg结构体保存。

在上述技术方案的基础上,所述步骤S3中Msg结构体广播给应用程序的具体过程为:

步骤S3.1:获取Intent对象,并将Msg结构体的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容保存到Intent对象中;

步骤S3.2:通过API将Intent对象发送给应用程序。

本发明还提供一种适用于不同推送SDK的统一接入系统,包括:

推送模块,其用于接收推送消息,并将推送消息封装成一单独的Msg结构体;

消息过滤模块,其用于对所有的Msg结构体进行过滤,去除相同的Msg结构体;

广播模块,其用于将消息过滤模块过滤后的Msg结构体广播给应用程序。

在上述技术方案的基础上,所述推送消息包括消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容,所述推送模块用于将推送消息的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容封装成一Msg结构体。

在上述技术方案的基础上,对于内容相同的推送消息,推送模块所封装成的Msg结构体相同,对于内容不同的推送消息,推送模块所封装成的Msg结构体不同。

在上述技术方案的基础上,当应用程序在广播模块上注册后,广播模块将推送消息广播给应用程序。

在上述技术方案的基础上,所述推送模块包括封装模块,所述封装模块用于将推送消息封装成一单独的Msg结构体。

与现有技术相比,本发明的一种适用于不同推送SDK的统一接入方法的优点在于:(1)对推送消息进行封装处理,仅保留应用程序所需要的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容,去掉各个厂商的推送SDK的推送消息的差异点,使得应该程序能够接受多个厂商的推送SDK的推送消息,避免应用程序的开发者为适配不同推送SDK而进行的编程工作量;(2)对推送消息封装后的Msg结构体进行过滤处理,保证推送消息的单一性。

本发明的一种适用于不同推送SDK的统一接入系统的优点在于:推送模块将推送消息封装处理成Msg结构体,去除各个厂商的推送SDK所推送消息的差异点,仅保留应用程序所需的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容,相当于一统一数据的处理接口,然后消息过滤模块对封装形成的Msg结构体进行过滤处理,保证推送消息的单一性,然后广播模块将Msg结构体广播给应用程序,完成应用程序对推送消息的接收。

附图说明

图1为本发明一种适用于不同推送SDK的统一接入方法的流程图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

参见图1所示,本发明提供一种适用于不同推送SDK的统一接入方法,用于对不同推送SDK的推送消息进行处理后,将推送消息接入到智能手机设备的应用程序中,从而使得应用程序能够适配不同厂商的推送SDK的集成方案,该方法包括:

步骤S1:接收推送消息,并将每条推送消息封装成一单独的Msg结构体,其中,内容相同的推送消息的Msg结构体相同,内容不同的推送消息的Msg结构体不同,即内容相同的推送消息所封装成的Msg结构体相同,内容不同的推送消息所封装成的Msg结构体不同。推送消息主要包括消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容,消息额外携带内容为当消息需要扩展时所需使用的内容,若消息无需扩展,则消息额外携带内容为空。对于不同厂商的推送SDK的推送消息,均包括消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容,区别差异在于不同厂商对推送消息的内容所使用的集成方案、编码结构等其它结构,因此,对推送消息进行封装,仅保留应用程序所需要的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容,去掉各个厂商的推送SDK的推送消息的差异点,使得应该程序能够接受多个厂商的推送SDK的推送消息,避免应用程序的开发者为适配不同推送SDK而进行的编程工作量。推送消息的封装步骤具体为:

步骤S1.1:对推送消息进行解析,获取推送消息的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容。推送消息的结构体组成为:

即id表示消息唯一标示符,cmd表示消息命令字,msg表示具体消息内容,extr表示消息额外携带内容,id、cmd、msg和extr都属于推送消息的data数据,且id、cmd、msg和extr均采用Json(JavaScript对象表示法)格式进行编写,Json是一种轻量级的数据交换格式,具有易于机器解析和生成的特性。

步骤S1.2:将推送消息的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容的具体值封装到一单独的Msg结构体中,即将消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容使用Msg结构进行封装起来。Msg结构的定义如下:

其中public class和private String为Msg结构的构造词,Msg结构为智能手机设备的系统或Windows操作系统中程序所使用一种结构体,即消息是由Msg结构来表示的。

步骤S2:对所有Msg结构体进行过滤,去除相同的Msg结构体。为了提高应用程序的消息接受率,保证推送SDK所推送的消息能够准确的被应用程序接受到,对于同一消息,推送SDK会进行多次推送,即会产生多个相同的推送消息,经过步骤S1处理后形成多个相同的Msg结构体,因此需要对所有Msg结构体进行过滤,去除相同的Msg结构体,即对于相同的Msg结构体,仅保留一个。对Msg结构体的过滤步骤为:

步骤S2.1:将所有Msg结构体存入一集合中。具体的可以存入到集合LinkedListBlockingQueue中,LinkedListBlockingQueue是Java中的一个同步队列,在多线程中主要用于同步处理数据集合,以免多线程造成数据读写异常。Java为一常见的计算机编程语言。

步骤S2.2:逐个读取集合中的Msg结构体,并将读取出的Msg结构体中的消息唯一标示符与还存在于集合中的Msg结构体的消息唯一标示符进行比对,若比对到相同的消息唯一标示符,则丢弃当前读取出的Msg结构体,若没比对到相同的消息唯一标示符,则将当前读取出的Msg结构体保存,从而使得保存下来的Msg结构体均是唯一的,同时也保证了所有推送消息的完整性,使得应用程序不会丢失推送消息。

步骤S3:将经过过滤的Msg结构体广播给应用程序,应用程序对Msg结构体进行解析处理,便可获取Msg结构体中推送消息的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容,从而完成对推送消息的接收。Msg结构体广播给应用程序的具体过程为:

步骤S3.1:获取Intent对象,并将Msg结构体的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容保存到Intent对象中,Intent(意图)主要是解决应用的各项组件之间的通讯,Intent相当于一个媒体中介的作用,专门提供组件相互调用的相关信息,实现调用者与被调者之间的解耦;

步骤S3.2:通过智能手机设备的API(Application Programming Interface,应用程序编程接口)将Intent对象发送给应用程序。

本发明还包括一种采用上述适用于不同推送SDK的统一接入方法的适用于不同推送SDK的统一接入系统,该系统包括推送模块、消息过滤模块和广播模块。

推送模块用于接收推送SDK的推送消息,并将推送消息封装成一单独的Msg结构体,对于内容相同的推送消息,推送模块所封装成的Msg结构体相同,对于内容不同的推送消息,推送模块所封装成的Msg结构体不同,推送消息主要包括消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容,因此推送模块将推送消息的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容封装成一Msg结构体,相当于统一了推送消息数据的处理接口,去除各个推送SDK所推送消息中的差异点,仅保留应用程序所需的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容,大大减轻了编程人员编写应用程序时的工作量。具体的,推送模块包括封装模块,封装模块用于将推送消息封装成一单独的Msg结构体,封装模块对推送消息的封装步骤为:

步骤S1.1:对推送消息进行解析,获取推送消息的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容;

步骤S1.2:将推送消息的消息唯一标示符、消息命令字、具体消息内容和消息额外携带内容封装到一单独的Msg结构体中。

消息过滤模块用于对所有的Msg结构体进行过滤,去除相同的Msg结构体,保证推送消息的单一性,,消息过滤模块将过滤后的消息进行保存,然后发送给广播模块;广播模块用于将消息过滤模块过滤后的Msg结构体广播给应用程序,需要接收推送消息的应用程序均会在广播模块上进行注册,因此当应用程序在广播模块上注册后,广播模块才能将推送消息广播给应用程序。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号