信息推送方法、客户端及系统的制作方法
【技术领域】
[0001]本发明涉及移动互联网技术领域,尤其涉及一种信息推送方法、客户端及系统。
【背景技术】
[0002]随着移动互联网技术的发展,信息推送技术已成为各种平台(比如Android平台)中应用(APP)上很重要的部分。目前的信息推送方案有多种,比如极光推送,还有各个互联网应用产品自身业务私有的推送模块,比如网易新闻、腾讯新闻的消息推送等。现有的这些推送方案的实现都是通过心跳包(heartbeat)与推送后台保持TCP长连接,以此来接收推送消息。
[0003]但是,现有的信息推送方案存在的缺陷是:耗费终端电量较多,而对于电量有限的移动终端(比如Android手机)而言,则因应用消耗电量大而无法满足用户长时间使用应用的需求。
【发明内容】
[0004]本发明实施例提供一种信息推送方法、客户端及系统,旨在满足业务推送需求的同时,节省终端电量。
[0005]本发明实施例提出一种信息推送方法,包括:
[0006]客户端从服务端获取业务消息;
[0007]判断所述业务消息的类型,当所述业务消息的类型为实时类消息时,调整心跳包的发送间隔为第一预设时间段,并在第二预设时间段后恢复心跳包的发送间隔为基准时间间隔;所述第一预设时间段大于所述基准时间间隔,且小于所述第二预设时间段;基于所述调整后的心跳包发送策略保持与所述服务端之间的网络链路连接,以供业务消息的推送操作。
[0008]本发明实施例还提出一种信息推送客户端,包括:
[0009]获取模块,用于从服务端获取业务消息;
[0010]调整模块,用于判断所述业务消息的类型,当所述业务消息的类型为实时类消息时,调整心跳包的发送间隔为第一预设时间段,并在第二预设时间段后恢复心跳包的发送间隔为基准时间间隔;所述第一预设时间段大于所述基准时间间隔,且小于所述第二预设时间段;
[0011]推送操作模块,用于基于调整后的心跳包发送策略保持与所述服务端之间的网络链路连接,以供业务消息的推送操作。
[0012]本发明实施例还提出一种信息推送系统,包括:客户端和服务端,其中:
[0013]所述客户端为如上所述的客户端;
[0014]所述服务端用于向所述客户端下发业务消息;基于客户端根据业务消息的类型调整的心跳包发送策略,与所述客户端保持网络链路连接,进行业务消息的推送操作。
[0015]本发明实施例提出的一种信息推送方法、客户端及系统,客户端在从服务端获取到业务消息后,判断业务消息的类型,根据业务消息的类型调整心跳包发送策略;基于该心跳包发送策略保持与服务端之间的网络链路连接,以供业务消息的推送操作,由此可以更好的满足移动终端上各种应用业务消息的推送需求,并节省了移动终端的电量。
【附图说明】
[0016]图1是本发明信息推送方法第一实施例的流程示意图;
[0017]图2是本发明实施例中根据所述业务消息的类型调整心跳包发送策略的流程示意图;
[0018]图3是本发明信息推送方法第二实施例的流程示意图;
[0019]图4是本发明信息推送方法第三实施例的流程示意图;
[0020]图5是本发明信息推送客户端第一实施例的功能模块示意图;
[0021]图6是本发明信息推送客户端第二实施例的功能模块示意图;
[0022]图7是本发明信息推送系统较佳实施例的结构示意图。
[0023]为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
【具体实施方式】
[0024]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0025]如图1所示,本发明第一实施例提出一种信息推送方法,包括:
[0026]步骤S101,客户端从服务端获取业务消息;
[0027]本实施例方案涉及的信息推送系统包括客户端和服务端,以Android手机为例,客户端部分主要负责手机推送模块SDK,包括Android Servie的管理、心跳包线程的管理、手机上推送消息的展示,以及和服务端交互的流程处理,包括发送注册包、和服务端建立长连接、发送心跳包、推送消息回报等。
[0028]服务端部分主要负责长连接的请求管理、业务逻辑处理、推送消息、统计信息落地等。此外还包括I3USH WEB管理后台和应用业务(比如游戏业务)接入管理等。
[0029]由于现有的终端应用进行业务消息推送时,为保持客户端与服务端之间的网络链路连接(比如TCP长连接),通常采用固定的心跳包发送策略,导致手机终端耗电量较大。
[0030]本实施例考虑到,根据服务端推送的业务消息的类型不同,可以允许心跳包线程具有不同的休眠时间,因此,本实施例采用以下解决方案:基于客户端获取的服务端下发的业务消息的类型,动态调整心跳包发送策略,在此策略的基础上保持客户端与服务端之间的网络链路连接,供业务消息的推送操作,以此节省手机终端的电量。
[0031]具体地,以Android手机为例,手机客户端在启动后,会生成一个AndroidService,然后与服务端通过注册包建立连接。之后,客户端启动心跳包线程,向服务端发送心跳包与服务端保持网络链路连接。通过该网络链路连接,获取应用业务推送消息。
[0032]其中,根据手机终端网络类型的不同,网络链路连接也不同。通常,手机网络类型主要有三种:wif1、net,还有小一部分wap网络。由于wif1、net网络都支持长连接,而wap网络不支持长连接,因此,当手机网络类型为wif1、net时,客户端与服务端之间的网络链路连接为长连接,客户端获取的业务消息为服务端推送的业务消息。
[0033]当手机网络类型为wap网络时,客户端与服务端之间的网络链路连接不为长连接,则推送方案需要改变成拉(polling)的方式,由客户端主动从服务端拉取业务消息。
[0034]由此,客户端根据网络类型的不同,需要在上述两种连接状态中切换,在切换过程中,需要进行推送流程的切换。An droid系统中通过注册网络连接状态BroadcastReceiver,来接收网络变化广播通知,以此调整网络链路连接。
[0035]步骤S102,根据所述业务消息的类型调整心跳包发送策略;
[0036]本实施例可以根据不同的业务消息类型调整心跳包发送策略,以节省手机电量。
[0037]其中,业务消息类型可以分为实时类消息、设定时间类消息以及指令类消息等。
[0038]以游戏营销业务为例,在游戏营销业务中,推送消息分为游戏实时消息、游戏营销活动消息、推送指令消息等类型。
[0039]游戏实时消息是指游戏最新的版本更新消息和道具打折消息以及其它实时消息。
[0040]游戏营销活动消息是指游戏运营策划的一些活动消息,其具有固定的推送时间。
[0041]推送指令消息包括推送关闭消息,或者临时下发的推送策略消息等。
[0042]对于不同的业务消息类型采用不同的心跳包发送间隔。如,对于实时类消息,按照推送消息不能过于频繁的约定和经验数据,在接收到该实时类消息后接下来一段时间(比如60分钟)内再有实时类消息的概率较小,可以调整心跳包的发送间隔大于客户端与服务端约定的基准时间间隔,从而节省了网络连接耗费和CPU运行耗费的手机电量;然后在设定的时间段后,恢复心跳包发送间隔为基准时间间隔。
[0043]对于设定时间类消息,由于消息推送时间已预先设定,同样可以调整心跳包的发送间隔大于客户端与服务端约定的基准时间间隔,从而可以节省网络连接耗费和CPU运行耗费的手机电量。
[0044]对于指令类消息,以推送关闭消息为例,当客户端接收到该推送指令消息后,则会停止心跳包的发送,关闭与服务端之间的网络链路连接,节省了网络连接耗费的手机电量。
[0045]步骤S103,基于所述调整后的心跳包发送策略保持与所述服务端之间的网络链路连接,以供业务消息的推送操作。
[0046]其中,消息推送系统在进行业务消息的推送操作时,需要根据网络链路连接的类型采取相应的推送方案,其中:
[0047]当所述网络链路连接为长连接时,所述客户端接收所述服务端推送的业务消息;