多平台消息推送服务的切换方法及装置与流程

文档序号:11253844 阅读:791 来源:国知局
多平台消息推送服务的切换方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种多平台消息推送服务的切换方法及装置。



背景技术:

随着移动互联技术的不断发展,移动应用、物联网、智能设备等领域也随之呈现出快速发展的趋势,信息推送作为服务端和客户端的一种重要交互手段,其在移动设备开发中承担着越来越重要的角色和任务。推送技术通过自动传送信息给用户,减少了用户用于网上搜索的时间,实现如业务功能提醒、营销活动推广、及时聊天信息等业务交互作用。

信息推送的实现方式有很多种,较为成熟的做法是客户端和服务器之间建立长久连接,以实现消息推送的即时性和实时性。目前,对于移动设备来说,分别在原生的操作系统中集成有相应的推送模块以提供推送服务。然而由于google服务器在国内所存在的流量限制;或者,一些移动终端使用的是定制的操作系统,而非原生操作系统,例如,华为手机、小米手机等均使用的定制系统,这些系统使用的则是手机厂商提供的推送服务,例如,小米系统的mipush(小米推送),华为系统的huaweipush(华为推送)。

此外,还有一些终端设备不具备系统级别的服务支持,适宜采用第三方推送服务,诸如极光、个推、信鸽、友盟、阿里、百度、小米、华为等。作为应用级的信息推送平台,支持跨系统平台的推送服务,且往往依赖于集成同款应用之间的相互唤醒,具有一定的稳定性,例如集成百度推送的移动应用可以被另一款集成该推送的移动应用所唤醒,但是移动端推送服务被系统回收和杀掉的概率相对较高,往往需要赋予自启权限,很难保证推送的稳定性。

基于上述推送服务的使用现状,由于不同的终端设备上使用的推送服务不统一,这就导致对于同一个应用来说,其消息推送的即时性和到达率低。



技术实现要素:

本发明提供一种多平台消息推送服务的切换方法,其主要目的在于解决现行方案中消息推送的即时性和到达率低的技术问题。

为实现上述目的,本发明提供一种多平台消息推送服务的切换方法,该多平台消息推送服务的切换方法包括:

当应用在终端设备上处于运行状态时,对所述应用当前的有效推送服务的响应情况进行实时检测和记录;

在检测到当前的有效推送服务连续推送无响应的次数大于第一预设阈值,或者响应失败的次数大于第二预设阈值时,停止所述有效推送服务,并从所述应用的推送库的推送服务队列中选择优先级最高的推送服务并启动,以作为所述应用当前的有效推送服务。

可选地,所述当应用在终端设备上处于运行状态时,对所述应用当前的有效推送服务的响应情况进行实时检测和记录的步骤之前,所述多平台消息推送服务的切换方法还包括步骤:

在侦测到需要开启推送服务的事件时,从缓存中查找存储的推送服务;

若在缓存中查找到存储的推送服务时,则启动存储的推送服务以作为有效推送服务;

若在缓存中查找不到存储的推送服务,则获取当前终端的系统平台,并从所述推送库中查找与获取的系统平台匹配的推送服务作为当前的有效推送服务。

可选地,所述当应用在终端设备上处于运行状态时,对所述应用当前的有效推送服务的响应情况进行实时检测和记录的步骤之后,所述多平台消息推送服务的切换方法还包括:

当检测到所述当前的有效推送服务无响应或者响应失败时,更新所述有效推送服务对应的困难因数,其中,推送服务的无响应或者响应失败的次数越多,其对应的困难因数越高;

根据更新后的困难因数,调整所述推送库中的推送服务的排列顺序,其中,推送服务的困难因数越小,其优先级越高。

可选地,所述多平台消息推送服务的切换方法还包括:

在侦测到需要开启推送服务的事件时,检测当前终端是否支持原生系统级推送服务;

若支持,则启动所述原生系统级推送服务作为所述有效推送服务的辅助通道,其中,在检测到当前的有效推送服务无响应或者响应失败时,基于所述原生系统级推送服务进行消息推送。

可选地,所述多平台消息推送服务的切换方法还包括:

在所述有效推送服务的运行过程中,若接收到远端发送的控制指令时,根据所述控制指令执行对应的推送服务控制动作。

此外,为实现上述目的,本发明还提供一种多平台消息推送服务的切换装置,该多平台消息推送服务的切换装置包括:

检测模块,用于当应用在终端设备上处于运行状态时,对所述应用当前的有效推送服务的响应情况进行实时检测和记录;

切换模块,用于在检测到当前的有效推送服务连续推送无响应的次数大于第一预设阈值,或者响应失败的次数大于第二预设阈值时,停止所述有效推送服务,并从所述应用的推送库的推送服务队列中选择优先级最高的推送服务并启动,以作为所述应用当前的有效推送服务。

可选地,所述多平台消息推送服务的切换装置还包括:

查找模块,用于在侦测到需要开启推送服务的事件时,从缓存中查找存储的推送服务;

所述切换模块还用于:若在缓存中查找到存储的推送服务时,则启动存储的推送服务以作为有效推送服务;以及,若在缓存中查找不到存储的推送服务,则获取当前终端的系统平台,并从所述推送库中查找与获取的系统平台匹配的推送服务作为当前的有效推送服务。

可选地,所述多平台消息推送服务的切换装置还包括:

更新模块,用于当检测到所述当前的有效推送服务无响应或者响应失败时,更新所述有效推送服务对应的困难因数,其中,推送服务的无响应或者响应失败的次数越多,其对应的困难因数越高;

调整模块,用于根据更新后的困难因数,调整所述推送库中的推送服务的排列顺序,其中,推送服务的困难因数越小,其优先级越高。

可选地,所述检测模块还用于:在侦测到需要开启推送服务的事件时,检测当前终端是否支持原生系统级推送服务;

所述切换模块还用于:若支持,则启动所述原生系统级推送服务作为所述有效推送服务的辅助通道,其中,在检测到当前的有效推送服务无响应或者响应失败时,基于所述原生系统级推送服务进行消息推送。

可选地,所述切换模块还用于:在所述有效推送服务的运行过程中,若接收到远端发送的控制指令时,根据所述控制指令执行对应的推送服务控制动作。

本发明提出的多平台消息推送服务的切换方法及装置,当应用在终端设备上处于运行状态时,对该应用当前的有效推送服务的响应情况进行实时检测,当检测到当前的有效推送服务连续推送无响应或者响应失败的次数大于预设阈值时,停止有效推送服务,并从应用推送库中选择优先级最高的推送服务并启动,以作为应用当前的有效推送服务。也就是说,本发明为应用配置有推送库,并且在应用当前使用的有效推送服务无响应或者响应失败的次数达到一定的阈值时,从推送库中重新选择新的推送服务作为有效推送服务提供推送服务,以提高应用的信息推送的即时性和到达率。

附图说明

图1为本发明多平台消息推送服务的切换方法第一实施例的流程图;

图2为本发明多平台消息推送服务的切换方法第一实施例中消息推送过程示意图;

图3为本发明多平台消息推送服务的切换方法第二实施例的流程图;

图4为本发明多平台消息推送服务的切换方法第三实施例中消息推送过程示意图;

图5为本发明多平台消息推送服务的切换方法应用场景流程示意图;

图6为本发明多平台消息推送服务的切换装置第一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种多平台消息推送服务的切换方法。参照图1所示,为本发明多平台消息推送服务的切换方法第一实施例的流程图。

在本实施例中,该多平台消息推送服务的切换方法包括:

步骤s10,当应用在终端设备上处于运行状态时,对所述应用当前的有效推送服务的响应情况进行实时检测和记录;

步骤s20,在检测到当前的有效推送服务连续推送无响应的次数大于第一预设阈值,或者响应失败的次数大于第二预设阈值时,停止所述有效推送服务,并从所述应用的推送库的推送服务队列中选择优先级最高的推送服务并启动,以作为所述应用当前的有效推送服务。

本发明实施例的执行主体可以为手机、平板电脑等智能移动终端。下文中均以执行主体为手机为例对本发明实施例提供的方法进行说明。

为了保证应用的消息推送的即时性以及达到率,本申请中为应用预先配置推送库。通过收集和分析该应用具体的用户群体,在得到详尽的用户设备分布概况后,进行大数据分析,组合选择适合的推送服务进行集成,建立与该应用匹配的推送库。此外,考虑到在为应用选择推送服务建立推送库时,势必会造成安装包大小的增加,选择和折中适当的推送服务,维持安装包大小低增长和推送效率高提升的动态平衡也十分重要。例如,某移动应用a主要分布于三星和小米系统的设备上,则可选择性的集成“小米推送服务”和“百度推送服务”到推送库,其他分部数量较少的系统则不再考虑;应用b主要分布于小米和华为系统设备,则可选择性集成“小米推送服务”和“华为推送服务”,其他分部数量较少的系统则不再考虑。

例如,对于目标应用a,预先设置的推送库中有推送服务s1、推送服务s2、推送服务s3、推送服务s4。其中,推送库中的推送服务可以是系统级推送服务,也可以是应用级推送服务。

对于应用来说,在侦测到一些特定的开始事件时,则要开启推送服务,例如,上述开始事件可以是应用进行前后台切换、网络变换、登录、开启应用等。需要说明的是,下文中所说的有效推送服务是指应用当前所使用的推送服务。在应用每次变更推送服务后,即选择新的推送服务后,可以将变更后的推送服务存储至缓存区域,可以是内存的缓存或者特定存储区域的缓存中。当应用再次侦测到开始事件时,则可以直接从缓存中获取存储的缓存服务,作为当前的有效缓存服务。

可以理解的是,应用在首次开启推送服务时,可以选择推送库中的一个推送服务作为备用的推送服务。或者,在在其他实施例中,可以采用下述方式选择一个推送服务作为当前的有效推送服务。

步骤s10之前,所述多平台消息推送服务的切换方法还包括步骤:

在侦测到需要开启推送服务的事件时,从缓存中查找存储的推送服务;

若在缓存中查找到存储的推送服务时,则启动存储的推送服务以作为有效推送服务;

若在缓存中查找不到存储的推送服务,则获取当前终端的系统平台,并从所述推送库中查找与获取的系统平台匹配的推送服务作为当前的有效推送服务。

在侦测到需要开启推送服务的开始事件时,从缓存中查找存储的推送服务,可以先从缓存中查找缓存服务,若有,则直接使用缓存中的推送服务作为最佳推送服务,否则,根据当前终端设备的系统从推送库中选择较高适配性的推送服务作为当前的有效推送服务。例如,对于华为手机来说,其适配度最高的是华为系统提供的huaweipush。如果推送库中的没有与当前的终端设备完全适配的推送服务,则选择推送库的推送服务队列中默认的优先级最高的推送服务,其中,预先根据各个推送服务的情况将推送库中的所有推送服务按照默认的优先级进行排序,建立推送服务队列。默认的优先级可以在配置推送库时预先设置。

在为应用选择了有效推送服务之后,启动该有效推送服务,使其处于激活状态,为该应用提供推送服务,并且,在选择启动选择的有效推送服务之后,将选择的优先级最高的推送服务存储至缓存中,在存储时,可以存储其标识信息。此外,对于当前的有效推送服务的响应情况进行实时检测,以及,对其推送服务的连续推送无响应的次数、以及响应失败的次数进行统计。

参照图2所示,一般情况下,一次完整的推送过程为101至105、201-204,其中,过程101至105为向推送控制器注册的注册流程,该过程获取推送控制器分配的tmid(transportmechanismidentifier,用户唯一标识),并将其上报至应用服务器,继而按照过程201-204进行消息的推送。本实施例中,对当前的有效推送服务的响应情况的检测主要是对过程101至105中的注册流程的检测,检测是否接收到推送控制器发送的响应信息或者是否接收到推送控制器发送的响应失败的提示信息,若接收不到推送控制器发送的响应信息,则认为无响应,接收到推送控制器发送的响应失败的提示信息,则认为响应失败。

在检测到当前的有效推送服务连续推送无响应的次数大于第一预设阈值,或者响应失败的次数大于第二预设阈值时,停止有效推送服务,并从应用的推送库中选择优先级最高的推送服务并启动,以作为应用当前的有效推送服务。其中,第一预设阈值和第二预设阈值根据需要预先设置。当检测到响应失败次数或者无响应次数达到上述设置的阈值时,则判定需要进行推送服务的切换,此时,从推送库的推送服务队列中选择优先级最高的推送服务并启动。

此外,可以理解的是,在选择了排列在首位的、优先级最高的推送服务并启动后,将该推送服务调整到队尾位置,以防止下一次重复选择同一个推送服务。

进一步地,作为一种实施方式,对推送库中所有的推送服务的失败响应次数和无响应次数进行统计,以便于对推送库中的推送服务进行优先级的排序。具体地,当检测到所述当前的有效推送服务无响应或者响应失败时,更新所述有效推送服务对应的困难因数,其中,推送服务的无响应或者响应失败的次数越多,其对应的困难因数越高;根据更新后的困难因数,调整所述推送库中的推送服务的排列顺序,其中,推送服务的困难因数越小,其优先级越高。也就是说,当检测当前的有效推送服务无响应或者响应失败时,更新其对应的困难因数,例如,可以加1;推送服务的苦难因数越高,其优先级越低,则排列在推送服务队列中靠后的位置。通过这样的方式,对推送库中的所有推送服务的按照优先级的顺序进行排列。

此外,需要说明的是,本实施例提出的方法可以应用于android、ios、windowsphone等任何系统的手机、平板或其他移动终端,本实施例只是以安卓系统为例进行说明,但并不局限于此。

本实施例提出的多平台消息推送服务的切换方法,当应用在终端设备上处于运行状态时,对该应用当前的有效推送服务的响应情况进行实时检测,当检测到当前的有效推送服务连续推送无响应或者响应失败的次数大于预设阈值时,停止有效推送服务,并从应用推送库中选择优先级最高的推送服务并启动,以作为应用当前的有效推送服务。也就是说,本发明为应用配置有推送库,并且在应用当前使用的有效推送服务无响应或者响应失败的次数达到一定的阈值时,从推送库中重新选择新的推送服务作为有效推送服务提供推送服务,以提高应用的信息推送的即时性和到达率。

基于第一实施例提出本发明多平台消息推送服务的切换方法的第二实施例。参照图3所示,在本实施例中,该多平台消息推送服务的切换方法还包括:

步骤s30,在侦测到需要开启推送服务的事件时,检测当前终端是否支持原生系统级推送服务;

步骤s40,若支持,则启动所述原生系统级推送服务作为所述有效推送服务的辅助通道,其中,在检测到当前的有效推送服务无响应或者响应失败时,基于所述原生系统级推送服务进行消息推送。

在该实施例中,兼容当前终端设备的原生操作系统所提供的推送服务作为辅助通道。以安卓系统为例,以google提供的gcm(googlecloudmessaging)为例,本实施例中兼容gcm心跳机制作为辅助通道。需要说明的是,由于国内2g和移动3g的nat超时时间都小于gcm心跳时间,tcp长连接必然无法保活,当心跳失败后,每次都要等到心跳时间后,进行心跳失败重连后才能收到推送;即使如此,但是gcm作为保活性良好的系统支持服务,在支持gcm的设备上,可以使用gcm作为辅助通道来增加新消息的及时性。服务器在发现当前的有效推送服务的推送失败情况下,可以通过gcm作为辅助通道告知终端设备有信息到达,并尝试唤醒推送库,或者切换至推送库中其他推送服务。以进一步提高应用的消息推送的即时性和到达率低。

基于第一实施例或者第二实施例提出本发明多平台消息推送服务的切换方法的第三实施例。在本实施例中,该多平台消息推送服务的切换方法还包括:

在所述有效推送服务的运行过程中,若接收到远端发送的控制指令时,根据所述控制指令执行对应的推送服务控制动作。

在该实施例中,还可以提供应用本身与应用服务器之间的通信通道,并互相阻塞式的监听对方的信息,在具体的实现层次上与推送服务并没有关联关系。应用在接收到应用服务器发送的推送控制指令时,例如,切换、开启、停止、暂停、恢复等,可以直接根据该控制指令执行对应的推送服务控制动作。参照图4所示,在应用内配置有端内通信模块,通过该模块接收应用服务器发送的推送控制指令,并根据该指令执行对应的推送服务控制动作。关于具体的推送指令,可以根据需要设置。例如,可以设置为:push_switch_next:向下切换,按照设定的切换算法进行一次切换;push_switch_[x]:切换为具体的某推送平台;push_start:开启当前选定的推送服务;push_stop:停止当前选定的推送服务;push_pause:暂停当前选定的推送服务;push_resume:恢复当前选定的推送服务等。例如,当用户发现接收不到应用的消息推送时,可以将该问题反馈至应用服务器,应用服务器接收到反馈信息后,可以向终端发送推送控制指令,例如发送push_switch_next控制指令,终端根据接收到的该指令,切换至推送库中的推送队列中的下一个推送服务作为当前的有效推送服务,以使用户能够接收到消息推送。

参照图5所示,为基于上述第一或者第二实施例提出的多平台消息推送服务的切换方法的一具体应用场景。

如图所示,为应用配置有多平台的推送服务集成库,包括gcm、百度推送、极光推送、小米推送、华为推送。其中,gcm推送服务作为辅助通道。过程101,在侦测到开始事件时,先从内存缓冲(internalmemory)中获取存储的推送服务,若获取不到,则从文件缓存中获取(externalmemory)中获取存储的推送服务;过程102,若仍然获取不到,则获取当前终端的系统和设备平台的类型,逐一判断是否为小米系统、华为系统、魅族系统等等,若获取到与当前终端系统适配的推送服务类型,则将适配的推送服务初始化为当前的有效推送服务,若获取不到,则将推送库中预先设置的优先级最高的推送服务作为当前的有效推送服务。过程103,在使用当前的有效推送服务进行信息的推送的过程中,对于当前的有效推送服务连续推送无响应的次数和响应失败的次数进行统计,当推送无响应的次数或者响应失败的次数达到对应的预设阈值时,按照集成库中推送服务的队列进行推送服务的切换,并将记录的推送无响应的次数和响应失败的次数清零。若推送无响应的次数或者响应失败的次数未达到对应的预设阈值,则继续进行tmid的请求,并根据请求的结果,例如无响应、响应失败等,对推送无响应的次数或者响应失败的次数进行更新。其中,还包括过程104,将gcm作为辅助通道来增加新消息的及时性。

本发明还提出一种多平台消息推送服务的切换装置。

参照图6所示,为本发明多平台消息推送服务的切换装置第一实施例的功能模块示意图。

在该实施例中,该多平台消息推送服务的切换装置包括:

检测模块10,用于当应用在终端设备上处于运行状态时,对所述应用当前的有效推送服务的响应情况进行实时检测和记录;

切换模块20,用于在检测到当前的有效推送服务连续推送无响应的次数大于第一预设阈值,或者响应失败的次数大于第二预设阈值时,停止所述有效推送服务,并从所述应用的推送库的推送服务队列中选择优先级最高的推送服务并启动,以作为所述应用当前的有效推送服务。

本发明实施例的执行主体可以为手机、平板电脑等智能移动终端。下文中均以执行主体为手机为例对本发明实施例提供的装置进行说明。

为了保证应用的消息推送的即时性以及达到率,本申请中为应用预先配置推送库。通过收集和分析该应用具体的用户群体,在得到详尽的用户设备分布概况后,进行大数据分析,组合选择适合的推送服务进行集成,建立与该应用匹配的推送库。此外,考虑到在为应用选择推送服务建立推送库时,势必会造成安装包大小的增加,选择和折中适当的推送服务,维持安装包大小低增长和推送效率高提升的动态平衡也十分重要。例如,某移动应用a主要分布于三星和小米系统的设备上,则可选择性的集成“小米推送服务”和“百度推送服务”到推送库,其他分部数量较少的系统则不再考虑;应用b主要分布于小米和华为系统设备,则可选择性集成“小米推送服务”和“华为推送服务”,其他分部数量较少的系统则不再考虑。

例如,对于目标应用a,预先设置的推送库中有推送服务s1、推送服务s2、推送服务s3、推送服务s4。其中,推送库中的推送服务可以是系统级推送服务,也可以是应用级推送服务。

对于应用来说,在侦测到一些特定的开始事件时,则要开启推送服务,例如,上述开始事件可以是应用进行前后台切换、网络变换、登录、开启应用等。需要说明的是,下文中所说的有效推送服务是指应用当前所使用的推送服务。在应用每次变更推送服务后,即选择新的推送服务后,可以将变更后的推送服务存储至缓存区域,可以是内存的缓存或者特定存储区域的缓存中。当应用再次侦测到开始事件时,则可以直接从缓存中获取存储的缓存服务,作为当前的有效缓存服务。

可以理解的是,应用在首次开启推送服务时,可以选择推送库中的一个推送服务作为备用的推送服务。或者,在在其他实施例中,可以采用下述方式选择一个推送服务作为当前的有效推送服务。

具体地,所述多平台消息推送服务的切换装置还包括:

查找模块,用于在侦测到需要开启推送服务的事件时,从缓存中查找存储的推送服务;

切换模块20还用于:若在缓存中查找到存储的推送服务时,则启动存储的推送服务以作为有效推送服务;以及,若在缓存中查找不到存储的推送服务,则获取当前终端的系统平台,并从所述推送库中查找与获取的系统平台匹配的推送服务作为当前的有效推送服务。

在侦测到需要开启推送服务的开始事件时,查找模块从缓存中查找存储的推送服务,可以先从缓存中查找缓存服务,若有,则直接使用缓存中的推送服务作为最佳推送服务,否则,根据当前终端设备的系统从推送库中选择较高适配性的推送服务作为当前的有效推送服务。例如,对于华为手机来说,其适配度最高的是华为系统提供的huaweipush。如果推送库中的没有与当前的终端设备完全适配的推送服务,则选择推送库的推送服务队列中默认的优先级最高的推送服务,其中,预先根据各个推送服务的情况将推送库中的所有推送服务按照默认的优先级进行排序,建立推送服务队列。默认的优先级可以在配置推送库时预先设置。

在为应用选择了有效推送服务之后,启动该有效推送服务,使其处于激活状态,为该应用提供推送服务,并且,在选择启动选择的有效推送服务之后,将选择的优先级最高的推送服务存储至缓存中,在存储时,可以存储其标识信息。此外,对于当前的有效推送服务的响应情况进行实时检测,以及对于当前的有效推送服务的响应情况进行实时检测,并且,对其推送服务的连续推送无响应的次数、以及响应失败的次数进行统计。

参照图2所示,一般情况下,一次完整的推送过程为101至105、201-204,其中,过程101至105为向推送控制器注册的注册流程,该过程获取推送控制器分配的tmid(transportmechanismidentifier,用户唯一标识),并将其上报至应用服务器,继而按照过程201-204进行消息的推送。本实施例中,对当前的有效推送服务的响应情况的检测主要是对过程101至105中的注册流程的检测,检测是否接收到推送控制器发送的响应信息或者是否接收到推送控制器发送的响应失败的提示信息,若接收不到推送控制器发送的响应信息,则认为无响应,接收到推送控制器发送的响应失败的提示信息,则认为响应失败。

在检测到当前的有效推送服务连续推送无响应的次数大于第一预设阈值,或者响应失败的次数大于第二预设阈值时,停止有效推送服务,并从应用的推送库中选择优先级最高的推送服务并启动,以作为应用当前的有效推送服务。其中,第一预设阈值和第二预设阈值根据需要预先设置。当检测到响应失败次数或者无响应次数达到上述设置的阈值时,则判定需要进行推送服务的切换,此时,从推送库的推送服务队列中选择优先级最高的推送服务并启动。

此外,可以理解的是,在选择了排列在首位的、优先级最高的推送服务并启动后,将该推送服务调整到队尾位置,以防止下一次重复选择同一个推送服务。

进一步地,作为一种实施方式,对推送库中所有的推送服务的失败响应次数和无响应次数进行统计,以便于对推送库中的推送服务进行优先级的排序。具体地,多平台消息推送服务的切换装置还包括:

更新模块,用于当检测到所述当前的有效推送服务无响应或者响应失败时,更新所述有效推送服务对应的困难因数,其中,推送服务的无响应或者响应失败的次数越多,其对应的困难因数越高;

调整模块,用于根据更新后的困难因数,调整所述推送库中的推送服务的排列顺序,其中,推送服务的困难因数越小,其优先级越高。

也就是说,当检测当前的有效推送服务无响应或者响应失败时,更新其对应的困难因数,例如,可以加1;推送服务的苦难因数越高,其优先级越低,则排列在推送服务队列中靠后的位置。通过这样的方式,对推送库中的所有推送服务的按照优先级的顺序进行排列。

此外,需要说明的是,本实施例提出可以应用于android、ios、windowsphone等任何系统的手机、平板或其他移动终端,本实施例只是以安卓系统为例进行说明,但并不局限于此。

本实施例提出的多平台消息推送服务的切换装置,当应用在终端设备上处于运行状态时,对该应用当前的有效推送服务的响应情况进行实时检测,当检测到当前的有效推送服务连续推送无响应或者响应失败的次数大于预设阈值时,停止有效推送服务,并从应用推送库中选择优先级最高的推送服务并启动,以作为应用当前的有效推送服务。也就是说,本发明为应用配置有推送库,并且在应用当前使用的有效推送服务无响应或者响应失败的次数达到一定的阈值时,从推送库中重新选择新的推送服务作为有效推送服务提供推送服务,以提高应用的信息推送的即时性和到达率。

基于第一实施例提出本发明多平台消息推送服务的切换装置的第二实施例。在本实施例中,该多平台消息推送服务的切换装置还包括:

检测模块10还用于:在侦测到需要开启推送服务的事件时,检测当前终端是否支持原生系统级推送服务;

切换模块20还用于:若支持,则启动所述原生系统级推送服务作为所述有效推送服务的辅助通道,其中,在检测到当前的有效推送服务无响应或者响应失败时,基于所述原生系统级推送服务进行消息推送。

在该实施例中,兼容当前终端设备的原生操作系统所提供的推送服务作为辅助通道。以安卓系统为例,以google提供的gcm(googlecloudmessaging)为例,本实施例中兼容gcm心跳机制作为辅助通道。需要说明的是,由于国内2g和移动3g的nat超时时间都小于gcm心跳时间,tcp长连接必然无法保活,当心跳失败后,每次都要等到心跳时间后,进行心跳失败重连后才能收到推送;即使如此,但是gcm作为保活性良好的系统支持服务,在支持gcm的设备上,可以使用gcm作为辅助通道来增加新消息的及时性。服务器在发现当前的有效推送服务的推送失败情况下,可以通过gcm作为辅助通道告知终端设备有信息到达,并尝试唤醒推送库,或者切换至推送库中其他推送服务。以进一步提高应用的消息推送的即时性和到达率低。

基于第一实施例或者第二实施例提出本发明多平台消息推送服务的切换装置的第三实施例。在本实施例中,切换模块20还用于:在所述有效推送服务的运行过程中,若接收到远端发送的控制指令时,根据所述控制指令执行对应的推送服务控制动作。

在该实施例中,还可以提供应用本身与应用服务器之间的通信通道,并互相阻塞式的监听对方的信息,在具体的实现层次上与推送服务并没有关联关系。应用在接收到应用服务器发送的推送控制指令时,例如,切换、开启、停止、暂停、恢复等,可以直接根据该控制指令执行对应的推送服务控制动作。参照图4所示,在应用内配置有端内通信模块,通过该模块接收应用服务器发送的推送控制指令,并根据该指令执行对应的推送服务控制动作。关于具体的推送指令,可以根据需要设置。例如,可以设置为:push_switch_next:向下切换,按照设定的切换算法进行一次切换;push_switch_[x]:切换为具体的某推送平台;push_start:开启当前选定的推送服务;push_stop:停止当前选定的推送服务;push_pause:暂停当前选定的推送服务;push_resume:恢复当前选定的推送服务等。例如,当用户发现接收不到应用的消息推送时,可以将该问题反馈至应用服务器,应用服务器接收到反馈信息后,可以向终端发送推送控制指令,例如发送push_switch_next控制指令,终端根据接收到的该指令,切换至推送库中的推送队列中的下一个推送服务作为当前的有效推送服务,以使用户能够接收到消息推送。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵该非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,云端服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页 1 2
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1