一种分层状态机实现消息推送的方法和装置制造方法及图纸

技术编号:17363530 阅读:37 留言:0更新日期:2018-02-28 13:29
本发明专利技术公开了一种分层状态机实现消息推送的方法和装置,包括接收层、交换层、路由层和消费层,首先,所述接收层接收服务器发送的分别来自不同平台的消息;其次,所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层;然后,所述交换层对所述消息进行统一格式转换后传递给所述路由层;最后,所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层。各层级分工明细,且无耦合度,提高了消息推送的兼容性和成功率。由此解决了现有技术中各种第三方消息推送平台不兼容,导致消息推送送达率低的技术问题,达到了兼容多种推送平台,进而提高消息推送成功率的技术效果。

A method and device for message push by a layered state machine

The invention discloses a hierarchical state machine implementation method and device for push messages sent, including receiving layer and exchange layer, routing layer and consumption layer, firstly, the receiving respectively from different platform message sent by the server receiving layer; secondly, the receiving layer will exchange the received message and the layers are respectively with two different threads running in the same process in the message to the exchange layer; then, the transfer to the routing layer of the unified message format; finally, the routing layer running on the work thread, the consumption level will be the message received to run on the UI thread. At all levels, the division of labor is fine, and there is no coupling degree, which improves the compatibility and success rate of message push. It solves the technical problems that the third party message push platform is not compatible in the existing technology, resulting in low message delivery service rate, and achieves the technical effect compatible with multiple push platforms, and further improves the success rate of message push.

【技术实现步骤摘要】
一种分层状态机实现消息推送的方法和装置
本专利技术属于安卓电视应用
,特别涉及一种分层状态机实现消息推送的方法和装置。
技术介绍
目前,不同于iOS平台使用统一的iOSCloud推送方案,Android平台由于缺乏统一标准推送方案,也就催生了大量第三方推送平台,比较知名的诸如:友盟推送(UMPush)、极光推送(JPush)、个推推送(GTPush)以及一些厂商推送(小米推送、华为推送、魅族推送)等。使用第三方推送平台推送消息的优势在于无需应用开发商重复搭建服务器,其次第三方推送平台拥有成熟的推送框架与数据及时处理手段。但使用第三方推送平台也存在诸多缺点:首先,第三方推送平台无法兼容所有机型,都存在推送送达率低于80%的问题;其次,第三方推送平台无法同时实现在线(应用进程存活)和离线(应用进程死亡)两种消息推送;再次,第三方推送平台推送的消息类型有限,无法满足app日益增长的多类型消息推送需求;最后,第三方推送平台一旦出现运行故障,app推送也随即处于瘫痪状态,影响app活跃率,带来经济损失巨大。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种分层状态机实现消息推送的方法和装置。第一方面,本专利技术实施例中提供了一种分层状态机实现消息推送的方法,所述分层状态机包括接收层、交换层、路由层和消费层,应用于安卓终端,具体包括如下步骤:所述接收层接收服务器发送的分别来自不同平台的消息;所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层;所述交换层对所述消息进行统一格式转换后传递给所述路由层;所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层。结合第一方面,本专利技术在第一方面的第一种实现方式中,在所述接收层接收服务器发送的分别来自不同平台的消息之前,还包括:所述接收层与所述服务器建立长连接通信。结合第一方面的第一种实现方式,本专利技术在第一方面的第二种实现方式中,所述接收层接收服务器发送的分别来自不同平台的消息,包括:当所述服务器与所述接收层的长连接通信处于连接状态时,所述消息直接由所述服务器通过socket通信机制传递至所述接收层;当所述服务器与所述接收层的长连接通信处于断开状态时,所述消息由所述服务器转发至系统消息接收服务代为托管,待所述接收层所在进程被激活后,系统服务再将所述消息转发给所述接收层。结合第一方面,本专利技术在第一方面的第三种实现方式中,所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层,包括:所述接收层将接收到的所述消息包裹在服务意图中,启动服务时将意图传递给所述交换层;所述交换层接收所述意图后发送广播给所述接收层,反馈所述消息是否交换成功的信息;所述接收层接收到所述交换层的反馈成功的信息后,随机开始传递下一条消息。结合第一方面,本专利技术在第一方面的第四种实现方式中,所述接收层接收到所述交换层的反馈成功的信息后,随机开始传递下一条消息,包括:所述消息的传递以队列形式逐个进行。结合第一方面,本专利技术在第一方面的第五种实现方式中,所述交换层对所述消息进行统一格式转换后传递给所述路由层,包括:所述交换层对所述消息按照UMT标准规范进行统一格式的消息转换后传递给所述路由层。结合第一方面,本专利技术在第一方面的第六种实现方式中,所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层,包括:所述路由层将接收到的所述消息存储到数据库中,并生成一个唯一的查询句柄;所述路由层将所述查询句柄封进消息通知内,待所述消息通知被激活后随机发送广播,所述广播将携带所述查询句柄发送出去,等待所述消费层接收广播并读取广播中的查询句柄;所述消费层读取所述查询句柄后根据所述查询句柄进入数据库查询对应的消息数据,根据所述消息数据创建动作意图进行页面切换或消息展示。本专利技术的第二方面,公开了一种分层状态机实现消息推送的装置,所述分层状态机包括接收层、交换层、路由层和消费层,应用于安卓终端,包括:第一接收模块,用于所述接收层接收服务器发送的分别来自不同平台的消息;第一交换模块,用于所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层;第一转换模块,用于所述交换层对所述消息进行统一格式转换后传递给所述路由层;第一推送模块,用于所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层。结合第二方面,本专利技术在第二方面的第一种实现方式中,所述第一推送模块,包括:第一存储模块,用于所述路由层将接收到的所述消息存储到数据库中,并生成一个唯一的查询句柄;第一封装模块,用于所述路由层将所述查询句柄封进消息通知内,待所述消息通知被激活后随机发送广播,所述广播将携带所述查询句柄发送出去,等待所述消费层接收广播并读取广播中的查询句柄;第一查询模块,用于所述消费层读取所述查询句柄后根据所述查询句柄进入数据库查询对应的消息数据,根据所述消息数据创建动作意图进行页面切换或消息展示。本专利技术的第三方面,公开了一种电子设备,包括处理器和存储器:所述存储器用于存储执行上述任一项方法所述的程序,所述处理器被配置为用于执行所述存储器中存储的程序。本申请实施例中提供的技术方案,至少具有如下技术效果或优点:本专利技术公开了一种分层状态机实现消息推送的方法和装置,所述分层状态机包括接收层、交换层、路由层和消费层,首先,所述接收层接收服务器发送的分别来自不同平台的消息;其次,所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层;然后,所述交换层对所述消息进行统一格式转换后传递给所述路由层;最后,所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层,故而通过消息的接收、数据交换、转换实现最终的第三方平台的消息推送,各环节互不干扰,消息的传递即可以在线也可以离线进行,可兼容多种推送平台,当其中一种推送平台处于故障状态时,可切换至其他可用平台。由此解决了现有技术中各种第三方消息推送平台不兼容,导致消息推送送达率低的技术问题,达到了兼容多种推送平台,进而提高消息推送成功率的技术效果。附图说明图1示出了根据本专利技术一个实施例的方法的流程图;图2示出了根据本专利技术一个实施例的装置的结构图;图3示出了根据本专利技术另一个实施例的装置的结构图。具体实施方式本专利技术提供一种分层状态机实现消息推送的方法和装置方法和装置,以解决现有技术中的各种第三方消息推送平台不兼容,导致消息推送送达率低的技术问题,达到了兼容多种推送平台,进而提高消息推送成功率的技术问题。为了更好的理解上述技术方案,下面通过附图以及具体实施例对本专利技术技术方案做详细的说明,应当理解本专利技术实施例以及实施例中的具体特征是对本专利技术技术方案的详细的说明,而不是对本专利技术技术方案的限定,在不冲突的情况下,本专利技术实施例以及实施例中的技术特征可以相互组合。请参看图1所示,本实施例提供一种分层状态机实现消息推送的方法,所述分层状态机包括接收层、交换层、路由层和消费层,应用于安卓终端,具体方法包括如下步骤:S1、所述接收层接收服务器发送的分本文档来自技高网...
一种分层状态机实现消息推送的方法和装置

【技术保护点】
一种分层状态机实现消息推送的方法,其特征在于,所述分层状态机包括接收层、交换层、路由层和消费层,应用于安卓终端,包括:所述接收层接收服务器发送的分别来自不同平台的消息;所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层;所述交换层对所述消息进行统一格式转换后传递给所述路由层;所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层。

【技术特征摘要】
1.一种分层状态机实现消息推送的方法,其特征在于,所述分层状态机包括接收层、交换层、路由层和消费层,应用于安卓终端,包括:所述接收层接收服务器发送的分别来自不同平台的消息;所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层;所述交换层对所述消息进行统一格式转换后传递给所述路由层;所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层。2.如权利要求1所述的方法,其特征在于,在所述接收层接收服务器发送的分别来自不同平台的消息之前,还包括:所述接收层与所述服务器建立长连接通信。3.如权利要求2所述的方法,其特征在于,所述接收层接收服务器发送的分别来自不同平台的消息,包括:当所述服务器与所述接收层的长连接通信处于连接状态时,所述消息直接由所述服务器通过socket通信机制传递至所述接收层;当所述服务器与所述接收层的长连接通信处于断开状态时,所述消息由所述服务器转发至系统消息接收服务代为托管,待所述接收层所在进程被激活后,系统服务再将所述消息转发给所述接收层。4.如权利要求1所述的方法,其特征在于,所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层,包括:所述接收层将接收到的所述消息包裹在服务意图中,启动服务时将意图传递给所述交换层;所述交换层接收所述意图后发送广播给所述接收层,反馈所述消息是否交换成功的信息;所述接收层接收到所述交换层的反馈成功的信息后,随机开始传递下一条消息。5.如权利要求1所述的方法,其特征在于,所述接收层接收到所述交换层的反馈成功的信息后,随机开始传递下一条消息,包括:所述消息的传递以队列形式逐个进行。6.如权利要求1所述的方法,其特征在于,所述交换层对所述消息进行统一格式转换后传递给所述路由层,包括:所述交换层对所述消息按照UMT标准规范进行统一格式的...

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

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

1