发明内容
为了解决上述技术问题,本发明提供消息推送系统及其方法,加快消息推送的速度,减少对系统资源的占用。
本发明的消息推送系统,包括:资源服务器,用于储存要向移动终端推动的消息;消息监测服务器,用于当移动终端处于解锁状态时,监听于UDP传输信道,接收自所述移动终端发送的检测指令,所述消息监测服务器检测所述资源服务器内是否有向移动终端推动的消息;若有,则所述资源服务器向所述移动终端推送消息;第一推送服务器,用于当移动终端处于待机状态时,轮询所述资源服务器内是否有要向移动终端推动的消息,若有,则推送所述消息至一第三方的第二推送服务器,所述第二推送服务器向所述移动终端推送消息。
优选地,所述第二推送服务器与所述移动终端之间保持TCP长连接。
根据本发明的另一个方面,还提供一种消息推送方法,采用上述消息推送系统,其特征在于,当所述移动终端解锁时,所述移动终端通过UDP传输信道发送检测指令到所述消息监测服务器;所述消息监测服务器检测所述资源服务器内是否有要向移动终端推动的消息,若有,则所述资源服务器向所述移动终端推送消息。
优选地,当所述消息被推送后,该消息从所述资源服务器删除。
优选地,所述资源服务器基于HTTP协议向所述移动终端推送消息。
优选地,所述移动终端执行第一操作时向所述消息检测服务器发送所述检测指令,其中,所述第一操作包括如下操作中的一种或多种:所述移动终端的屏幕的滑动操作,包括上拉、下拉或者左右滑动;所述移动终端的屏幕的点击操作;所述移动终端的按键的点击操作;或者所述移动终端相应外接输入设备的输入操作。
优选地,所述移动终端以第一时间间隔为周期向所述消息检测服务器发送所述检测指令。
优选地,随所述移动终端的网络带宽增加,所述第一时间间隔减少。
优选地,所述第一时间间隔为1至15秒之间的任意长度。
本发明对移动终端的消息推送机制进行了分时处理,也就是说在移动终端解锁时,移动终端通过UDP传输信道检测是否有新的数据,若有,则移动终端直接向资源服务器请求以获取要向移动终端推送的消息。在移动终端待机时,由第二推送服务器(第三方)向移动终端推送消息。这样的分时处理使得移动终端能够及时得获得推送的消息,提高了整个推送系统的数据传输的速度。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
本发明在移动终端解锁和待机两种情况下使用不同的消息推送机制以使移动终端及时获得推送消息,提高整个推送系统的传输的速度,同时减少系统资源的占用。具体而言,本发明的消息推送方法的流程图如图1所示,共有6个步骤。
首先为步骤S101,判断移动终端是否解锁。
具体而言,该步骤可以由移动终端来检测,也可以由本发明提供的消息推送系统或者第三方的推送服务器检测。本领域技术人员可以理解,在此不予赘述。
其中,移动终端解锁可以包括移动终端运行一应用程序,或者移动终端使用其他操作。
若步骤S101的判断结果是移动终端解锁,则继续执行步骤S102。
步骤S102,移动终端通过UDP传输信道与消息推送系统通信以检测是否有需要向移动终端推送的消息。
其中,移动终端通过UDP传输信道向本发明提供的消息推送系统发送检测指令以检测是否有需要向移动终端推送的消息。若消息推送系统检测到需要向移动终端推送的消息,则继续执行步骤S103。若消息推送系统没有检测到有需要向移动终端推送的消息,则移动终端继续向消息推送系统发送检测指令。
步骤S103,消息推送系统将需要向移动终端推送的消息推送至移动终端。
其中,该消息基于HTTP协议被推送至移动终端。
若步骤S101的判断结果移动终端没有解锁,也就是移动终端处于待机状态,则执行步骤S104。
步骤S104,消息推送系统轮询是否有需要向移动终端推送的消息。
步骤S105,若有需要向移动终端推送的消息,则消息推送系统将该消息推送至一第三方的推送服务器。
步骤S106,该第三方的推送服务器将该消息推送至移动终端。
其中,第三方的推送服务器与移动终端保持TCP长连接,并通过TCP长连接来传输指示信息。
在图1的一个具体实施例中,上述推送消息显示在移动终端屏幕的下拉菜单中,用户看见上述推送消息想要获取更详细的信息,则点击该消息以打开客户端以获取更详细的信息。
第一实施例
第一实施例中,结合图2的拓扑图以及图3的时序图进一步细化了步骤S102以及步骤S103所描述的移动终端解锁时的消息推送系统对移动终端进行的消息推送。
消息推送系统10包括:资源服务器101、消息监测服务器102以及第一推送服务器103。其中,资源服务器101、消息监测服务器102以及第一推送服务器103优选地通过一局域网互相通讯,在一个变化例中,资源服务器101、消息监测服务器102以及第一推送服务器103也可以分别接入互联网以互相通讯。
移动终端20通过移动网络接入点30接入移动网络,并通过移动网络与消息推送系统10的各个服务器相通讯。在一个变化例中,移动终端20通过一无线网络接入点(例如路由器)接入无线网络。本领域技术人员可以实现更多移动终端20接入网络的实施方式,在此不予赘述。具体而言,移动终端20与资源服务器101的通讯基于HTTP协议。移动终端20与消息监测服务器102的通讯基于UDP协议。
资源服务器101储存了需要向移动终端20推送的消息。进一步地,资源服务器101还可以储存移动终端20的标识信息、历史操作数据或者该移动终端20与其他移动终端之间的关联信息等等。在本发明的一个实施例中,资源服务器101包括多个数据堆栈,用于处理向多个移动终端20推送的消息。本领域技术人员理解,数据堆栈与移动终端20的对应关系可以有多种不同的变化。例如,一个数据堆栈与一个移动终端20相对应以管理该移动终端20的推送消息。或者,多个数据堆栈与多个移动终端相对应,该多个移动终端20具有相同的属性,例如,属于同一个群组,或者接收同一类新闻等等,该多个数据堆栈分别管理不同种类的移动终端20的推送消息。本领域技术人员利用现有技术可以实现更多的变化例,具体地,在此不予赘述。
当移动终端20解锁时,消息监测服务器102监听于UDP传输信道,接收自移动终端20发送一检测指令,并检测资源服务器101内是否有需要向移动终端20推送的消息。
第一推送服务器103,在移动终端待机时,轮询资源服务器101内是否有需要向移动终端20推送的消息并通过一第三方的推送服务器向移动终端20推送消息。
具体而言,本发明通过如下步骤实现移动终端解锁时的消息推送:
首先是步骤S301,移动终端20以一检测规则向消息监测服务器102发送一检测指令,该检测指令用于检测资源服务器101内是否有需要向移动终端推送的消息。其中,该检测指令基于UDP协议发送。
优选地,检测规则是移动终端20以一定时间间隔为周期向消息监测服务器102发送检测指令。该时间间隔可以是1至15秒中任一长度。例如,移动终端20以5秒为周期向消息监测服务器102发送检测指令。
在上述检测规则的一个变化例中,当移动终端20的网络带宽增加时,该时间间隔相应减少。也就是说,当移动终端20的网速增加时,减少检测指令的发送周期。例如,在移动终端20接入移动网络(如3G网络)时的网络带宽明显小于移动终端20通过一路由器接入无线网络时的网络带宽(如WIFI),则当移动终端20接入移动网络时,以10秒为周期向消息监测服务器102发送检测指令,而当移动终端20接入无线网络时,以5秒为周期向消息监测服务器102发送检测指令。
在上述检测规则的又一变化例中,该检测规则是当移动终端20执行某一操作时向消息监测服务器102发送检测指令。例如,当移动终端20的屏幕是触摸屏,则用户通过对屏幕的滑动使得移动终端20接收屏幕具有上拉、下拉或者左右滑动的操作数据时,移动终端20向消息监测服务器发送检测指令。又例如,当移动终端20的屏幕是触摸屏,则用户通过对屏幕的点击使得移动终端20接收屏幕被点击的操作数据时,移动终端20向消息监测服务器发送检测指令。再例如,用户对移动终端20的按键的点击操作或者移动终端20相应外接输入设备的输入操作等都可以触发移动终端20向消息监测服务器发送检测指令。
步骤S302,消息监测服务器102监听于UDP传输信道,当接收到移动终端20基于UDP传输信道传输的检测指令后,向资源服务器101检测是否有需要向移动终端20推送的消息。
步骤S303,当有需要向移动终端20推送的消息时,消息监测服务器102通过UDP传输信道向移动终端20返回检测结果。
步骤S304,移动终端20向资源服务器101发送请求信息以获取推送消息。其中,该请求信息基于HTTP协议发送。
步骤S305,资源服务器101将推送消息发送至移动终端20。其中,该推送消息基于HTTP协议发送。
在步骤S305一个优选例中,当资源服务器101将推送消息发送至移动终端20后,将推送消息从资源服务器101中删除。
在步骤S305一个变化例中,上述步骤S303和步骤S304可以省略。也就是说,当有需要向移动各终端20推送的消息时,直接执行步骤S305,资源服务器101将推送发送至移动终端20,这种方式只需要三个步骤就能完成消息推送,并且,仅在最后的消息发送时才使用到TCP长连接,所消耗的时间最短,一般为5秒,并且减少了通讯资源的占用。
通常,在现有的消息推送中,检测指令都是由HTTP协议发送的,需要通过三次握手协议来能实现,耗时很长且占用了通讯资源。鉴于此类消息推送的检测指令都是周期性反复发送的,本发明通过使用UDP传输通道来传输检测指令,缩短了消息推送的时间并且减少了通讯资源的占用。
第二实施例
第二实施例中,结合图4的拓扑图以及图5的时序图进一步细化了步骤S103至步骤S106所描述的移动终端待机时的消息推送系统对移动终端进行的消息推送。
与第一实施例不同的是,图4还示出了一第三方系统的第二推送服务器40。第二推送服务器40优选地,为移动终端20的操作系统的推送服务器。
其中,第二推送服务器40通过无线网络与第一推送服务器102相通讯。第二推送服务器40通过无线网络与移动终端20相通讯,其中,第二推送服务器40与移动终端20保持TCP长连接。
第一推送服务器103和第二推送服务器40协同向移动终端20推送消息。
具体而言,本发明通过如下步骤实现移动终端待机时的消息推送:
首先是步骤S501,第一推送服务器103与资源服务器101相通讯以轮询资源服务器101是否有需要向移动终端推送的消息。
步骤S502,当有需要向移动终端推送的消息时,第一推送服务器103将该消息发送至第二推送服务器40。
步骤S503,第二推送服务器40收到上述信息后,通过TCP协议将该消息推送至移动终端20。
现有的移动终端20在解锁和待机的情况下都进行图5所示的消息推送机制,移动终端20需要与第二推送服务器40保持TCP长连接,当第一推送服务器103轮询资源服务器101有需要向移动终端20推送的消息,并通过第二推送服务器40向移动终端20推送该消息通常需要13秒的时间。
而UDP传输信道具有处理速度快,信息传输占用资源消耗小的优点,在移动终端20解锁时采用这样的设置能够有效提高新的消息检测时的速度和效率,进一步提高消息推送的速度。
使用了本发明的UDP检测机制,当移动终端20解锁时,消息监测服务器102检测到资源服务器101有需要向移动终端20推送的消息,并直接通过资源服务器101向移动终端20推送该消息(如第一实施例所述)则只需要5秒的时间,大大缩短了消息的推送时间,减小了用户的等待时间,提高了用户体验。
综上可知,本发明对移动终端的消息推送机制进行了分时处理,也就是说在移动终端解锁时,移动终端通过UDP传输信道检测是否有新的数据,若有,则移动终端直接向资源服务器请求以获取要向移动终端推送的消息。在移动终端待机时,由第二推送服务器(第三方)向移动终端推送消息。这样的分时处理使得移动终端能够及时得获得推送的消息,提高了整个推送系统的数据传输的速度。
以上具体地示出和描述了本发明的示例性实施方式。应该理解,本发明不限于所公开的实施方式,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效布置。