本发明涉及消息推送领域,更为具体而言,涉及一种消息推送方法、消息推送服务器、客户端及系统。
背景技术:
现有的消息推送技术大多采用以下方案进行消息推送:
方案一:通过接入非终端设备厂商,例如极光推送等,进行消息推送;
方案二:通过接入终端设备厂商,例如小米推送、华为推送等,进行消息推送;
方案三:通过公司开发的自己独立的推送服务进行消息推送。
上述方案存在以下缺陷:
对于方案一和方案三,当推送服务被系统杀死的时候,便无法接收到消息。对于方案二,只能保证在厂商自己生产的终端上能较好的接收到消息,无法保证在所有的终端设备上都能较好的接收消息。并且,无论哪种方案,对所采用的推送服务的稳定性依赖很大,当依赖的推送服务出现问题时,不仅会造成极大损失,而且无法进行有效应对。
技术实现要素:
为了解决现有的消息推送技术所存在的缺陷,本发明实施方式提供一种消息推送方法、消息推送服务器、客户端及系统,能够融合多种推送服务进行消息推送,保证了消息推送的质量(例如:稳定性和消息到达率等),降低对单各推送服务的依赖性。
一方面,本发明实施方式提供了一种消息推送方法,包括:
根据影响消息推送的环境因素选取用于进行消息推送的目标推送服务;
通过所述目标推送服务向客户端推送消息。
在本发明实施方式的一种实现方式中,所述环境因素包括:所述多种推送服务的通信链路环境;或,所述环境因素还包括:业务场景和/或设备环境。
进一步地,可以采用以下方式获取所述多种推送服务的通信链路环境:
向所述客户端发送所述多种推送服务的通信链路,以便所述客户端尝试与所述多种推送服务的通信链路建立连接;接收所述客户端返回的所述客户端与所述多种推送服务的连接情况进而根据连接情况确定通信链路环境。
或者,进一步地,所述业务场景包括以下任意一种或多种:透传模式、通知模式且应用在前台弹出通知的模式、通知模式且应用在前台不弹出通知的模式;所述设备环境包括以下任意一种或多种:所述客户端在安装所述客户端的设备上被杀死的概率,所述客户端在所述设备上的网络是否正常,所述客户端在所述设备上的定时任务是否正常,所述设备的品牌,所述客户端在所述设备上是否处于前台。
或者,进一步地,所述通过所述目标推送服务向客户端推送消息包括:根据所述业务场景确定消息呈现方式;以所述消息呈现方式向所述客户端推送消息。
在本发明实施方式的另一实现方式中,所述根据所述环境因素选取用于进行消息推送的目标推送服务,包括:如果预设的优选推送服务的通信链路环境满足预设条件,则选取所述优选推送服务作为所述目标推送服务;否则,按照以下优先顺序从通信链路环境满足预设条件的推送服务中选取所述目标推送服务:设备环境满足预设条件且能够满足所述业务场景的推送服务具有第一(高)优先级,能够满足所述业务场景但设备环境不满足预设条件的推送服务具有第二(中)优先级,设备环境满足预设条件但不能满足所述业务场景的推送服务具有第三(低)优先级。或者,所述根据所述环境因素选取用于进行消息推送的目标推送服务,包括:根据为所述环境因素设置的权重以及预设的加权计算公式从所述多种推送服务中选取所述目标推送服务。
在本发明实施方式的再一种实现方式中,所述通过所述目标推送服务向客户端推送消息,包括:与所述目标推送服务建立通信连接;通过所述目标推送服务将消息推送至所述客户端。
另一方面,本发明实施方式提供一种消息推送方法,所述方法包括:
向消息推送服务器发送环境数据,以便所述消息推送服务器至少基于所述环境数据选取用于进行消息推送的目标推送服务;
接收所述消息推送服务器通过所述目标推送服务推送的消息。
在本实施方式的一种实现方式中,所述环境数据包括客户端与多种推送服务的通信链路的连接情况,或者,还包括设备环境。其中,所述设备环境包括以下任意一种或多种:用于执行所述消息推送方法的客户端在安装该客户端的设备上被杀死的概率,所述客户端在所述设备上的网络是否正常,所述客户端在所述设备上的定时任务是否正常,所述设备的品牌,所述客户端在所述设备上是否处于前台。
在本实施方式的另一种实现方式中,所述向消息推送服务器发送环境数据,包括:从所述消息推送服务器获取所述多种推送服务的通信链路;尝试与所述多种推送服务的通信链路建立连接;将与所述多种推送服务的通信链路的连接情况上传所述消息推送服务器。
在本实施方式的再一种实现方式中,所述方法还包括:根据消息呈现方式和用于执行所述消息推送方法的客户端的状态进行消息呈现。
再一方面,本发明实施方式提供一种消息推送服务器,包括:
服务模块,用于根据影响消息推送的环境因素选取用于进行消息推送的目标推送服务;
推送模块,用于通过所述目标推送服务向客户端推送消息。
在本实施方式的一种实现方式中,所述环境因素包括根据所述客户端与多种推送服务的连接情况确定的所述多种推送服务的通信链路环境,或者,还包括:从所述客户端接收到的设备环境和/或从业务方服务器接收到的业务场景。
发送模块其中,进一步地,所述业务场景包括以下任意一种或多种:透传模式、通知模式且应用在前台弹出通知的模式、通知模式且应用在前台不弹出通知的模式;所述设备环境包括以下任意一种或多种:所述客户端在安装所述客户端的设备上被杀死的概率,所述客户端在所述设备上的网络是否正常,所述客户端在所述设备上的定时任务是否正常,所述设备的品牌,所述客户端在所述设备上是否处于前台。
或者,进一步地,所述推送模块包括:呈现子模块,用于根据所述业务场景确定消息呈现方式;第二推送子模块,用于以所述消息呈现方式向所述客户端推送消息。
在本实施方式的另一种实现方式中,所述服务模块采用以下方式选取所述目标推送服务:如果预设的优选推送服务的通信链路环境满足预设条件,则选取所述优选推送服务作为所述目标推送服务;否则,按照以下优先顺序从通信链路环境满足预设条件的推送服务中选取所述目标推送服务:设备环境满足预设条件且能够满足所述业务场景的推送服务具有第一(高)优先级,能够满足所述业务场景但设备环境不满足预设条件的推送服务具有第二(中)优先级,设备环境满足预设条件但不能满足所述业务场景的推送服务具有第三(低)优先级。或者,所述服务模块采用以下方式选取所述目标推送服务:根据为所述环境因素设置的权重以及预设的加权计算公式从所述多种推送服务中选取所述目标推送服务。
在本发明实施方式的再一种实现方式中,所述推送模块包括:连接子模块,用于与所述目标推送服务建立通信连接;第一推送子模块,用于通过所述目标推送服务将消息推送至所述客户端。
又一方面,本发明实施方式提供一种客户端,包括:
发送模块,用于向消息推送服务器发送环境数据,以便所述消息推送服务器至少基于所述环境数据选取用于进行消息推送的目标推送服务;
消息模块,用于接收所述消息推送服务器通过所述目标推送服务推送的消息。
在本实施方式的一种实现方式中,所述环境数据包括客户端与多种推送服务的通信链路的连接情况,或者,还包括设备环境。其中,所述设备环境包括以下任意一种或多种:所述客户端在安装所述客户端的设备上被杀死的概率,所述客户端在所述设备上的网络是否正常,所述客户端在所述设备上的定时任务是否正常,所述设备的品牌,所述客户端在所述设备上是否处于前台。
在本实施方式的另一种实现方式中,所述客户端还包括:链路模块,用于从所述消息推送服务器获取所述多种推送服务的通信链路;环境模块,用于尝试与所述多种推送服务的通信链路建立连接并向所述消息推送服务器反馈与所述多种推送服务的连接状况。
在本实施方式的再一种实现方式中,还包括:呈现模块,用于根据消息呈现方式和所述客户端的状态进行消息呈现。
此外,本发明实施方式还提供一种消息推送系统,包括:前述的根据本发明实施方式或实现方式的消息推送服务器和客户端。
在本实施方式的一种实现方式中,所述消息推送系统还包括:业务方服务器,用于向所述消息推送服务器发送业务场景和需要推送的消息;和/或,多种消息推送服务。
采用本发明的各种实施方式,通过根据环境因素选取目标推送服务进行消息推送,具有以下有益效果:
1)能够融合多种推送服务进行消息推送,有利于建立/选取稳定可靠的通信链路;
2)能够对多种不同的推送服务的选取/使用进行标准化和统一化;
3)既保证了消息推送的质量(例如:稳定性和消息到达率等),又降低了对单个推送服务的依赖性;
4)提供了复杂场景下的消息处理与呈现方案。
附图说明
图1是根据本发明实施例的一种消息推送方法的流程示意图;
图2是根据本发明实施例的一种消息推送过程的示意图;
图3是根据本发明实施例的一种消息推送系统的框架示意图;
图4是根据本发明实施例的一种聚合消息推送系统的框架示意图;
图5是根据本发明实施例的一种策略分析与输出过程的示意图;
图6是根据本发明实施例的一种消息推送过程的示意图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。也可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或步骤可以按各种不同配置进行组合和设计。还可以容易理解,虽然可能仅在部分实施例中对特定名称、术语、范围等进行解释,但该解释同样适用于其它实施例,除非特别说明。
图1是根据本发明实施例的一种消息推送方法的流程示意图,参照图1,所述方法包括:
102:根据环境因素从多种推送服务中选取用于进行消息推送的目标推送服务。
需要说明的是,所述环境因素是影响消息推送的环境因素。虽然在下文会对影响消息推送的环境因素进行举例说明。但是这些举例的内容不对本发明构成限制。本领域技术人员可以遵循本发明的思想或启示,合理地选取、增加、设计其它影响消息推送的环境因素。
104:通过所述目标推送服务向客户端推送消息。例如,向客户端的本地服务(在发明中,可以称作聚合消息推送服务)推送消息。
可选地,在本发明实施例的一种实现方式中,如图1中虚线框所示,所述方法还可以包括处理100:获取影响消息推送的环境因素。
需要说明的是,在本发明中提及的“获取”包含了通过主动请求、被动接收、直接获取、间接获取(例如,设置信息中转设备)等方式获取,并且包含了接收后确定的含义,例如接收参考信息进而确定所需要的参数。
可选地,在该实现方式中,处理100可以包括:根据所述客户端与多种推送服务的连接情况确定的所述多种推送服务的通信链路环境,或者,进一步包括:从所述客户端接收设备环境和/或从业务方服务器接收业务场景。
采用本发明实施例提供的消息推送方法,相对于现有的采用固定的推送服务进行消息推送而言,通过根据环境因素选取目标推送服务进行消息推送,一方面,能够融合多种推送服务,有利于建立/选取稳定可靠的通信链路;另一方面,能够对多种不同的推送服务的选取/使用进行标准化和统一化;再一方面,既保证了消息推送的质量(例如:稳定性和消息到达率等),又降低了对单个推送服务的依赖性。
图2是根据本发明实施例的一种消息推送过程的示意图,参照图2,所述方法包括:
200:客户端向消息推送服务器发送环境数据。
可选地,在本实施例的一种实现方式中,所述环境数据包括客户端与多种推送服务的通信链路的连接情况,或者,还进一步包括设备环境。其中,消息推送服务器可以基于客户端与多种推送服务的通信链路的连接情况确定所述多种推送服务的通信链路环境。所述多种推送服务的通信链路环境以及设备环境均属于影响消息推送的环境因素。
关于通信链路环境,具体而言,推送服务的通信链路环境可以由通信链路是否稳定来表征,以t表示推送服务的通信链路环境,每个推送服务的通信链路是否稳定记为变量t1到tn(n为推送服务的数量)。可以采用以下方式获取t1至tn:首先客户端从消息推送服务器获取通信链路策略,其中包含多种推送服务的通信链路;然后,客户端尝试与多种推送服务的通信链路建立连接;最后客户端将其与所述多种推送服务的通信链路的连接情况上传至消息推送服务器,例如,客户端在与某推送服务建立稳定的连接后,上报给消息推送服务器,在与某推送服务断开连接后,也上报给服务器。
其中,“尝试”表示“目的为建立连接但存在未成功建立连接的可能”,不做他讲。
关于设备环境,此处的设备是指安装客户端的设备,例如,安装有应用程序的移动终端。具体而言,以d表示设备环境,d可以包括变量d1、d2、d3、d4、d5中的任意一种或多种。其中,d1表示在所述设备上,所述客户端被杀死的概率(例如,可以包括容易杀死和不容易杀死两种状态);d2表示在所述设备上,所述客户端的网络是否正常;d3表示在所述设备上,所述客户端的定时任务是否正常;d4表示所述设备的品牌;d5表示在所述设备上,所述客户端是否处于前台。
更具体而言,所述d2和d3由客户端通过日志分析确定并上传至消息推送服务器,所述d4和d5由客户端通过系统函数获取并上传至消息推送服务器,消息推送服务器根据客户端的心跳表现以及所述d2和d3确定所述d1。
在本实现方式中,通过以上方式获取的环境因素有利于帮助准确判断当前环境适合采用哪种/哪些推送服务。
202:业务方服务器向消息推送服务器发送业务场景。其中,业务场景属于影响消息推送的环境因素,业务方服务器还用于向消息推送服务器发送需要推送的消息。
其中,以b表示业务场景,其影响因素记为变量b1,则b1包括:透传模式、通知模式且应用在前台弹出通知的模式、通知模式且应用在前台不弹出通知的模式。
204:消息推送服务器从多种推送服务获取服务因素。
可选地,在本实施例的一种实现方式中,以o表示服务因素,其包括多种推送服务自身是否发生异常。不可用的推送服务不作为候选的目标推送服务,换言之,服务因素也可以作为影响消息推送的环境因素。
206(回转箭头表示消息推送服务器自身执行的处理):消息推送服务器基于接收/获取的数据选取目标推送服务。
在处理206中,消息推送服务器至少基于客户端发送的环境数据确定目标推送服务。例如,根据接收到的客户端与多种推送服务的通信链路的连接情况确定所述多种推送服务的通信链路环境,进而基于所述多种推送服务的通信链路环境选取通信链路环境满足一定条件的推送服务作为目标推送服务。当然,也可以结合环境数据以及其它数据选取目标推送服务。
可选地,在本实施例的一种实现方式中,可以采用以下方式实现处理206:
如果预设的优选推送服务(例如,公司自己开发的推送服务)的通信链路环境满足预设条件,则选取所述优选推送服务作为所述目标推送服务。否则,按照以下优先顺序从通信链路环境满足预设条件的推送服务中选取所述目标推送服务:设备环境满足预设条件且能够满足所述业务场景的推送服务具有第一(高)优先级,能够满足所述业务场景但设备环境不满足预设条件的推送服务具有第二(中)优先级,设备环境满足预设条件但不能满足所述业务场景的推送服务具有第三(低)优先级。其中,举例而言,通信链路环境满足预设条件的推送服务可以是客户端与其建立了通信连接(或稳定的通信连接)的推送服务;设备环境满足预设条件可以是设备的品牌与推送服务对应;满足业务场景可以是指推送服务能够支持指定的消息呈现方式。
更具体而言,在一种具体示例中,优先使用公司自己推送服务的通信链路,如果由于某些因素(如应用程序被杀死,网络被断开等)导致自己的推送服务通信链路被破坏(通信链路环境不满足预设条件的一种情况),则采用其它推送服务的通信链路。在使用其它推送服务的通信链路时,根据设备品牌优先采用相同品牌的通信链路,否则采用其它品牌的通信链路。如果某个品牌的通信链路无法满足业务场景(如通知模式前台不弹出通知)的需求,则采用其它通信链路进行替换。如果某个品牌的通信链路由于某些因素被破坏,则采用其它通信链路进行替换。
可选地,在本实施例的另一种实现方式中,采用以下方式实现处理206:根据为影响消息推送的环境因素设置的权重以及预设的加权计算公式从所述多种推送服务中选取所述目标推送服务。
例如,以y1表示通信链路的选择结果(如选择小米推送链路、华为推送链路、自己的推送链路,或者同时使用其中的一个或多个推送链路)。则:
y1=a*d1+b*d2+c*d3+d*d4+e*d5+……+f*dn+g*t1+……+h*tn+i*b1+j*o
其中,a-j等系数的含义表示各个影响因素具有的权重(或者权重和优先级)。示例性地,采用该公式可以前述实现方式的选取规则确定目标推送服务。
可选地,在本实施例的其它实现方式中,可以根据所述业务场景确定实际的消息呈现方式,换言之,可以将业务方指定采用的消息呈现方式作为实际消息呈现方式。此外,也可以结合业务场景和其它因素(例如,服务因素)确定实际的消息呈现方式,例如,以y2表示实际的消息呈现方式,则:
y2=m*b1+n*o
其中,m和n表示权重(或者表示权重和优先级)。也就是说,实际采用的消息呈现方式与业务方指定的消息呈现方式并不必须一致。例如,当支持业务方指定的消息呈现方式的推送服务异常时,可以采用未指定的其它消息呈现方式(例如,消息推送服务器中默认的消息呈现方式)。
采用本发明的上述实现方式,提供了相对完善的策略选择(选择推送服务和/或消息呈现方式)机制,能够根据环境因素实时变换策略。当部分推送服务出现异常时,可以随时切换推送服务,减少对于单一推送服务的依赖,提升推送服务的可靠性,保证消息的送达率。
208:通过目标推送服务向客户端推送消息。
可选地,在本实施例的一种实现方式中,采用以下方式实现处理208:与所述目标推送服务建立通信连接;通过所述目标推送服务将消息推送至所述客户端。进一步可选地,在完成消息推送之后,可以释放消息推送服务器与目标推送服务之间的连接,但是,可以继续保持客户端与各推送服务之间的连接。
可选地,在本实施例的一种实现方式中,采用以下方式实现处理208:根据业务场景确定消息呈现方式;以所述消息呈现方式向所述客户端推送消息。
210(回转箭头表示客户端自身执行的处理):客户端根据消息呈现方式和客户端状态进行消息呈现。
可选地,在本实施例的一种实现方式中,如下表所示,客户端状态(应用状态)包括三种。在不同的消息呈现方式和应用状态下,客户端具有不同的输出结果。其中,自定义处理是指客户端在接收到消息后可以进行任意的自定义处理,比如弹窗提醒、声音提醒、发送网络请求等。
采用本实现方式,提供了消息推送在复杂场景下的解决方案,同时对推送消息进行多元化的处理和呈现,尽量保证无论应用是处于前台还是后台,无论应用(客户端)是被杀死还是正常活着,应用都能正常接收到消息并完整呈现,同时保证最好的用户体验。
需要说明的是,在图2所示实施例中,不对处理200、202和204的顺序进行限制,处理202、处理204和处理210也并非必须,换言之,本领域技术人员可以根据需要(例如,所要实现的目的)灵活调整、组合、增删上述处理。
图3是根据本发明实施例的一种消息推送系统的框架示意图。参照图3,所述消息推送系统包括消息推送服务器30和客户端32。下面进行详细说明。
在本实施例中,如图3所示,消息推送服务器30包括:服务模块304,用于根据影响消息推送的环境因素选取用于进行消息推送的目标推送服务;推送模块306,用于通过所述目标推送服务向客户端推送消息。
其中,关于环境因素的详细说明请参照图1-图2所示实施例中的解释,此处不再赘述。而如前所述,由于环境因素可以包括业务场景和推送服务自身是否发生异常,所以,可选地,如虚线框所示,消息推送系统还可以包括业务方服务器34和多种推送服务36。所述业务方服务器34还用于向消息推送服务器30发送需要推送的消息;所述多种推送服务36则用于在所述消息推送服务器的选择进行消息推送。
可选地,在本实施例的一种实现方式中,如图中虚线框所示,消息推送服务器30还包括接收模块,用于接收来自客户端、业务方服务器的数据。例如,用于接收客户端与多种推送服务的连接情况、业务场景、设备环境等。
可选地,在本实施例的一种实现方式中,服务模块304采用以下方式选取所述目标推送服务:如果预设的优选推送服务的通信链路环境满足预设条件,则选取所述优选推送服务作为所述目标推送服务;否则,按照以下优先顺序从通信链路环境满足预设条件的推送服务中选取所述目标推送服务:设备环境满足预设条件且能够满足所述业务场景的推送服务具有第一优先级,能够满足所述业务场景但设备环境不满足预设条件的推送服务具有第二优先级,设备环境满足预设条件但不能满足所述业务场景的推送服务具有第三优先级。
可选地,在本实施例的一种实现方式中,服务模块304采用以下方式选取所述目标推送服务:根据为所述环境因素设置的权重以及预设的加权计算公式从所述多种推送服务中选取所述目标推送服务。
可选地,在本实施例的一种实现方式中,如图中虚线框所示,推送模块306包括:连接子模块,用于与目标推送服务建立通信连接;和第一推送子模块,用于通过目标推送服务将消息推送至客户端。其中,在推送完成之后,可以断开与目标推送服务的通信连接(即,释放通信链路)。
可选地,在本实施例的一种实现方式中,推送模块306(未图示)包括:呈现子模块,用于根据所述业务场景确定消息呈现方式;第二推送子模块,用于以所述消息呈现方式向客户端推送消息。
在本实施例中,如图3所示,客户端32包括:发送模块322,用于向消息推送服务器30发送环境数据,以便消息推送服务器30至少基于所述环境数据选取用于进行消息推送的目标推送服务;消息模块324,用于接收消息推送服务器30通过目标推送服务推送的消息。
需要说明的是,消息推送服务器30可以仅根据从客户端确定/获取的环境因素确定目标推送服务,也可以结合其它来源的环境因素(例如,来自业务方服务器的业务场景)确定目标推送服务。
可选地,在本实施例的一种实现方式中,如图中的虚线框所示,客户端32还包括:链路模块326,用于从消息推送服务器30获取多种推送服务的通信链路;环境模块328,用于尝试与多种推送服务的通信链路建立连接并向消息推送服务器30反馈与所述多种推送服务的连接状况(建立连接以及未建立连接)。
可选地,在本实施例的一种实现方式中,如图3中的虚线框所示,客户端32还可以包括呈现模块310,用于根据消息呈现方式和应用状态进行消息呈现。
采用本发明实施例提供的消息推送系统,一方面,能够对多种不同的推送服务的选取/使用进行标准化和统一化;另一方面,既保证了消息推送的质量(例如:稳定性和消息到达率等),又降低了对单个推送服务的依赖性。
需要说明的是,关于以上各个模块、子模块所执行处理或可执行处理的详细说明,关于特定名称、术语、范围的解释,关于各个实施例、相关特征所具有的有益效果的描述,请参见方法实施例中的相应说明,此处不再赘述。
本发明在保护上述消息推送系统的同时,还保护根据本发明实施例的消息推送服务器(例如,消息推送服务器30)、客户端(例如,客户端32)安装该客户端的装置/设备等。
以上结合附图对根据本发明实施例的消息推送服务器、客户端、消息推送系统进行了说明。下面从设计角度对本发明实施例的相关内容进行概括说明。
本发明提供的消息推送方法/系统,可以理解为一种聚合消息推送方法/系统,换言之,不采用单一的推送方式(sdk),融合多个sdk进行消息推送。示例性而非限制性地,本发明的方法可以应用于安卓应用。本发明的聚合消息推送系统整体上可以采用c/s(client/server)结构。具体而言,可以包括聚合消息推送服务器、多种推送服务以及本地的聚合消息推送服务。
如图4所示是根据本发明实施例的一种聚合消息推送系统的框架示意图。下面进行详细说明。
在本实施例中,聚合消息推送服务器40中的策略分析模块402负责对当前设备环境、通信链路环境、系统环境(例如,各推送服务自身是否异常)、业务场景等进行分析和处理,然后在当前设备适合采用哪种推送服务的通信链路、适合采用哪种推送场景(消息呈现方式)等方面进行策略输出。策略分析模块402所执行的处理包括服务模块304所执行的处理。
聚合消息推送服务器40中的通信链路建立和管理模块404用于根据策略分析模块402的策略输出与相应的推送服务(推送服务的通信链路建立和管理模块)配合建立通信链路并管理该通信链路,消息处理和转发模块406则与相应的推送服务(推送服务的消息处理和转发模块)配合进行消息处理和转发。其中的链路建立和管理模块404以及消息处理和转发模块406所执行的处理对应于图3所示实施例中的推送模块306所执行的处理。
在本实施例中,聚合消息推送服务42中的策略获取模块422用于从服务器获取通信链路策略,根据通信链路策略尝试与推送服务进行连接并向聚合消息推送服务器40反馈连接情况(该处理对应于图3所示实施例中的发送模块322的处理),以便聚合消息推送服务器40根据例如前述的公式y1选择合适的通信链路。
聚合消息推送服务42中的通信链路建立和管理模块424用于与多种推送服务的通信链路建立连接,复杂场景下的消息处理和呈现模块426提供消息推送在复杂场景下的解决方案,同时对推送消息进行多元化的处理和呈现,从而尽量保证无论应用是处于前台还是后台,无论应用是被杀死还是正常活着,应用都能正常接收到消息并完整呈现,同时保证最好的用户体验。以上处理对应于图3所示实施例中的消息模块324和呈现模块310所执行的处理。
如图5所示是根据本发明实施例的一种策略分析与输出过程的示意图。参照图5,聚合消息推送服务器40从多种推送服务、业务方服务器(又可称作业务层)、聚合消息推送服务(位于客户端)获取设备环境、通信链路环境、多种推送服务的环境(例如,推送服务自身是否异常)、业务场景等环境因素。此外,聚合消息推送服务器40还用于根据上述环境因素进行环境分析确定输出策略,所述输出策略具体可以包括:选取哪种推送服务的通信链路、采用哪种推送场景(消息呈现方式)。聚合消息推送服务42可以根据聚合消息推送服务器40的策略尝试与相应的通信链路建立连接进而反馈连接状况。
如图6所示是根据本发明实施例的一种消息推送过程示意图。参照图6,所述消息推送过程包括:首先,聚合消息推送服务42从聚合消息推送服务器42获取通信链路策略,然后根据通信链路策略尝试与相应的推送服务的通信链路建立连接。之后,聚合消息推送服务器40进行如前所述的y1与y2的判断。之后,聚合消息推送服务器40经由根据y1确定的推送服务和根据y2确定的消息呈现方式推送消息。聚合消息推送服务42在接收到消息后,以通知、弹窗、声音提醒等多种方式进行呈现,同时支持应用在接收到消息后进行任意的自定义处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。