一种基于http的移动应用消息推送方法及系统的制作方法

文档序号:8342839阅读:791来源:国知局
一种基于http的移动应用消息推送方法及系统的制作方法
【技术领域】
[0001]本发明涉及移动应用消息推送领域,具体涉及一种基于HTTP的移动应用消息推送方法及系统。
【背景技术】
[0002]随着移动终端的计算能力和智能化的发展,移动终端的应用程序越来越丰富,随着社会的进步,移动终端已经广泛应用于社会之中。移动终端的应用使用时,需要实时从服务端获取一些特定消息(即消息推送),以便及时对用户进行提醒。
[0003]服务端向移动终端进行消息推送时,存在以下缺陷:
[0004](I)移动终端接收消息推送需要耗费电量,进而降低了移动终端的电力续航能力,为了保证移动终端的正常使用,难以在移动终端上轮询服务端消息。
[0005](2)移动终端接收消息时会进行数据通信,进而会消耗移动终端的流量,若消耗的流量过大,会增加用户的使用成本,给用户带来经济上的损失。
[0006](3)移动终端的类型较多,不同类型的移动终端推送消息的方法不同(例如Android平台的移动终端和苹果1s平台的移动终端有各自特有的消息推送方法),进而使得需要针对不同类型的移动终端开发对应的消息推送方法,开发成本较高。
[0007]移动终端上大量的应用采用混合开发方式,应用的核心内容采用Web方式实现。HTTP协议(HyperText Transfer Protocol,超文本传输协议)是一种常用的协议,所有类型的移动终端均能采用HTTP协议承载推送消息。
[0008]目前,常见的基于HTTP的消息推送方法为:
[0009](I)轮询,即移动终端定期从服务端请求获取消息,服务端有消息或没有消息均向移动终端返回信息、并结束与移动终端的连接;移动终端每次请求获取消息时,均需要与服务端重新建立连接。
[0010]采用轮询的方式进行消息推送时,移动终端与服务端建立连接需要占用一定时间,不仅使得移动终端无法从服务端实时获取消息,而且会消耗移动终端的电量和流量。
[0011](2)长轮询(也可称为“拉”),移动终端从服务端请求获取消息,在服务端返回消息之前,一直保持移动终端与服务端通信的畅通(即使用HTTP长连接),服务端有消息时向移动终端返回信息、并结束与移动终端的连接。
[0012]采用长轮询的方式进行消息推送时,服务端一般单次返回一个消息,移动终端再次获取消息时,仍需要与服务端重新建立连接。
[0013](3)WebSocket,WebSocket是HTML5 —种新的协议,其能够实现浏览器与服务器的全双工通信;但是,WebSocket建立的是全双工TCP连接,只能在HTML5的环境下使用,无法适用于HTTP协议,适用范围比较单一。

【发明内容】

[0014]针对现有技术中存在的缺陷,本发明的目的在于提供一种基于HTTP的移动应用消息推送方法及系统。本发明能够适用于各种类型移动终端,不仅能够节约电量和流量资源,降低了使用成本,而且在移动终端与服务端连接中断时,能够可靠的推送消息到移动终端,便于人们使用。
[0015]为达到以上目的,本发明提供的基于HTTP的移动应用消息推送方法,该方法包括以下步骤:
[0016]S1:服务端将消息划分为若干消息主题,每个消息主题中均包括若干不同类型的消息,每条消息均配置有匹配ID,转到步骤S2 ;
[0017]S2:移动终端向服务端发送HTTP POST请求,HTTP POST请求中包括消息主题、消息类型、消息序号和匹配ID,移动终端向服务端订阅符合HTTP POST请求的消息,转到步骤S3 ;
[0018]S3:服务端定时向订阅的移动终端推送心跳消息,移动终端判断心跳消息是否接收成功,若是,转到步骤S4,否则重新执行步骤S2 ;
[0019]S4:服务端产生符合移动终端订阅的消息主题和匹配ID的消息后,服务端将消息序列化,服务端为需要发送至移动终端的所有消息标记连续序号;服务端将所有消息通过相应的HTTP连接发送至移动终端,转到步骤S5 ;
[0020]S5:服务端每次发送消息至移动终端后,均判断移动终端是否收到消息,若是,转到步骤S7,否则转到步骤S6 ;
[0021]S6:服务端将未推送的消息形成持久化缓存队列,移动终端记录收到最后一个消息的序号;移动终端与服务端重新建立连接,移动终端订阅最后一个消息序号之后的消息,服务端从持久化缓存队列中取出消息进行推送,重新执行步骤S5 ;
[0022]S7:移动终端将收到的消息进行反序列化、并处理消息。
[0023]在上述技术方案的基础上,步骤S4具体包括以下步骤:
[0024]S401:服务端产生消息后,根据消息主题查询所有订阅当前消息的移动终端,服务端对订阅当前消息的所有移动终端进行遍历,转到步骤S402 ;
[0025]S402:依次判断所有移动终端的匹配ID是否符合当前消息主题下所有消息的匹配ID,若是,转到步骤S404,否则转到步骤S403 ;
[0026]S403:判断当前移动终端的匹配ID是否符合当前消息的匹配ID,若是,转到步骤S404,否则转到步骤S405 ;
[0027]S404:服务端将当前消息序列化,服务端为需要发送至移动终端的所有消息标记连续序号;服务端将所有消息通过相应的HTTP连接发送至移动终端,转到步骤S405 ;
[0028]S405:判断服务端对所有移动终端遍历是否完成,若是,步骤S4结束,转到步骤S5 ;否则继续执行步骤S402。
[0029]在上述技术方案的基础上,步骤SI中所述消息主题用于标识和组织特定消息,消息主题为一个可读性的字符串。
[0030]在上述技术方案的基础上,步骤SI中所述匹配ID为消息具体类型的ID或者消息关联资源的ID。
[0031]在上述技术方案的基础上,步骤S3中所述心跳消息为移动终端的内置消息。
[0032]在上述技术方案的基础上,步骤S4中所述服务端使用轻量级的数据交换JSON格式将消息序列化。
[0033]在上述技术方案的基础上,步骤S6还包括以下步骤:若服务端产生新消息、且服务端与移动终端尚未连接成功,服务端将当前新消息放入持久化缓存队列、并按连续序号顺序进行标号。
[0034]在上述技术方案的基础上,步骤S7中所述移动终端将收到的消息进行反序列化、并处理消息之后,还包括以下步骤:判断移动终端是否解除订阅,若是,服务端清除移动终端订阅信息,结束,否则转到步骤S4。
[0035]一种实现上述方法的基于HTTP的移动应用消息推送系统,该系统包括位于移动终端的订阅模块和消息接收模块,位于服务端的消息主题管理模块、订阅管理模块和应用丰吴块;
[0036]所述订阅模块用于:移动终端需要订阅消息时,向服务端发送HTTP POST请求;移动终端未收到心跳消息时,控制移动终端继续向服务端发送HTTP POST请求;
[0037]所述订阅管理模块用于:当移动终端订阅消息时,保持和缓存HTTP连接,记录移动终端订阅的信息;当移动终端解除订阅时,关闭HTTP连接、并清除移动终端订阅信息;当推送消息失败时,将未推送的消息形成持久化缓存队列;
[0038]所述应用模块用于:产生消息后,向消息主题管理模块发送相应主题的消息推送请求;
[0039]所述消息主题管理模块用于:收到相应主题的消息推送请求后,通过定义主题消息结构和消息的匹配ID,使移动终端和服务端达成一致的协议并进行消息推送;记录订阅消息主题的移动终端的信息,为需要发送至移动终端的所有消息标记连续序号;
[0040]所述消息接收模块用于:接收服务端推送的消息,将消息进行反序列化、并处理消息。
[0041]与现有技术相比,本发明的优点在于:
[0042](I)与现有技术中的轮询相比,本发明使用时,移动终端通过HTTP POST请求向服务端订阅消息,能够应用于各种类型的移动终端,适用范围比较广泛。
[0043]与此同时,HTTP POST请求包括消息主题,服务端产生消息后,根据移动终端订阅的消息主题下发所有消息至移动终端;在移动终端与服务端连接中断时,本发明能够使得服务端将消息进行持久化缓存,待连接正常时推送至移动终端。
[0044]因此,本发明不仅能够节省移动终端与服务端重新建立连接的时间,节约电量和流量,而且可靠的将消息推送至移动终端,便于人们使用。
[0045](2)本发明HTTP POST请求还包括匹配ID,服务端根据消息主题确定移动终端后,能够根据匹配ID精确匹配移动终端订阅消息主题下的特定消息(即对消息进行二次匹配),进而实现细粒度的订阅,减少移动终端和服务端的数据传输信息量,降低了使用成本。
【附图说明】
[0046]图1为本发明实施例中基于HTTP的移动应用消息推送方法的流程图;
[0047]图2为本发明实施例中移动终端与服务端的通信过程的时序图;
[0048]图3为本发明实施例中步骤S4的流程图;
[0049]图4为本发明实施例中基于HTTP的移动应用消息推送系统的连接框图。
【具体实施方式】
[0050]以下结合附图及实施例对本发明作进一步详细说明。
[0051]参见图1所示,本发明实施例中的基于HTTP的移动应用消息推送方法,服务端使用SSE (Server-Sent Events,HTML5服务器发送事件)技术向移动终端推送消息,该方法包括以下步骤:
[0052]S1:服务端将消息划分为若干消息主题,每个消息主题中均包括若干不同类型的消息,每条消息均配置有匹配ID(匹配ID可以为消息具体类型的ID,还可以为消息关联的某个资源的ID),转到步骤S2。
[0053]S2:移动终端向服务端发送HTTP POST请求(HTTP协议中的重要请求,向目的服务器发出更新请求,并附有请求实体),HTTP POST请求中包括消息主题、消息类型、消息序号和匹配ID,移动终端向服务端订阅符合HTTP POST请求的消息,转到步骤S3。
[0054]S3:服务端定时向订
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1