一种消息推送系统的制作方法

文档序号:9997203阅读:517来源:国知局
一种消息推送系统的制作方法
【技术领域】
[0001]本实用新型涉及数字通信领域,特别是一种消息推送系统。
【背景技术】
[0002]目前,移动通信已从模拟通信发展到了数字移动通信阶段,未来移动通信的目标是,能在任何时间、任何地点、向任何人提供快速可靠的通信服务,因此,如何实现即时通信和离线消息的推送受到越来越多的关注。
[0003]MQTT协议是一种轻量级的、基于代理的“发布/订阅”模式的消息传输协议,协议简洁、小巧、可扩展性强、省流量、省电,为移动终端推送量身定制。
[0004]随着智能操作系统广泛应用到智能手机、平板电脑以及智能电视中,现有的消息推送方法仍停留在PC时代,无法实现分布式消息推送;推送与接入耦合紧密,不能进行伸缩部署,在海量终端的接入、高并发访问的情况下,不能及时推送消息,无法满足千万级终端接入。

【发明内容】

[0005]本实用新型所要解决的技术问题是,针对现有技术不足,提供一种消息推送系统。
[0006]为解决上述技术问题,本实用新型所采用的技术方案是:一种消息推送系统,包括至少一个控制模块、至少一个推送模块;当所述控制模块数量为一个时,所述控制模块与终端、推送模块通信;当所述控制模块数量为两个以上时,每个控制模块均与所有的推送模块通信,其中一个控制模块与终端通信;其中一个推送模块与终端通信。
[0007]所述推送模块与控制模块数量比为3:1。
[0008]所述控制模块与存储模块通信。存储模块可以存储海量数据信息。
[0009]所述推送模块与所述控制模块之间采用全双工通信方式通信。所述终端与推送模块之间的通信、控制模块与推送模块之间的通信采用不同端口进行隔离,提高系统的安全性。
[0010]一种利用上述消息推送系统进行消息推送的方法,该方法主要实现过程为:终端与控制模块通信,获取认证凭据;终端通过轮询的方法与推送模块建立连接,并向该推送模块发送认证凭据,推送模块收到认证凭据后,发送给控制模块确认认证凭据的有效性;验证有效后推送模块向终端返回登录成功的信息;终端向推送模块订阅推送频道,推送模块将订阅关系通知控制模块,控制模块记录此订阅关系;由消息发送方将消息发送给控制模块同时指定推送频道;控制模块根据订阅关系获取订阅终端,并将消息分发给相应推送模块;推送模块将消息推送到具体终端;最后终端返回消息反馈给推送模块;推送模块进一步将反馈传递给控制模块;控制模块记录此反馈,并标记该消息已被终端接收。
[0011]所述终端与所述推送模块采用MQTT协议通信。降低了消息推送的带宽,提高了消息推送的准确性。
[0012]所述控制模块确认认证凭据的有效性的实现过程包括:控制模块根据终端的唯一标识,返回代表该终端身份的唯一认证凭据,该认证凭据在24小时内有效;当终端尝试与多个推送模块建立连接时,保留最后一个连接;控制模块记录终端与推送模块的连接关系;终端与推送模块建立连接后,发送心跳包维持与该推送模块的连接。
[0013]与现有技术相比,本实用新型所具有的有益效果为:本实用新型系统的各个模块相对独立,因此可以分散部署在不同的机器上,从而可根据终端接入数目和消息推送数量动态调配服务器资源,达到伸缩部署、高性能、高并发的目的,能实现分布式消息推送。
【附图说明】
[0014]图1为本实用新型一实施例结构框图;
[0015]图2为本实用新型实施例离线消息推送流程图;
[0016]图3为本实用新型实施例主动消息推送流程图。
【具体实施方式】
[0017]如图1所示,本实用新型系统包括推送模块、控制模块和存储模块。推送模块与控制模块之间构成双向全双工通信,存储模块只与控制模块相连。推送模块MlOO和终端构成全双工通信,通信使用MQTT协议;推送模块MlOO和控制模块M200同样是全双工通信;推送模块MlOO不和存储模块M300直接通信,控制模块M200和存储模块M300之间的通信由控制模块M200主动发起。推送模块MlOO用于向终端发送推送消息;控制模块用于发放终端认证凭据、接收消息推送、记录订阅状态和推送状态;存储模块用于存储数据;终端与控制模块之间的连接为短连接,通信完后两者之间的连接立即断开。
[0018]本实用新型推送方法实现过程为:终端向所述控制模块通信,获取认证凭据;终端与推送模块建立连接,并传递凭据进行认证;推送模块与控制模块通信验证凭据的有效性,并返回登录结果给终端;终端登录成功后,向推送模块订阅相关的推送频道;推送模块向控制模块通报此订阅关系;由消息发送方将消息发送给推送模块并指定推送频道;控制模块根据推送频道以及记录的订阅关系获取在线终端;控制模块将在线终端根据其所连的推送模块进行分组,并将消息和终端列表传递给推送模块;推送模块依次将消息推送给终端列表中的终端;终端收到消息后,向推送模块返回接收消息的反馈通知;推送模块向控制模块上报此反馈,并由控制模块记录此反馈。
[0019]终端与推送模块之间的通信全部采用MQTT协议。
[0020]控制模块会根据终端唯一标识,返回代表该终端身份的唯一认证凭据;认证凭据只在一定期限内有效;一个终端只允许与一个推送模块建立连接,终端尝试与多个推送模块建立连接时,只会保留最后一个连接;在凭证有效期内终端可以反复与任意一个推送模块建立连接进行认证;控制模块会记录终端与推送模块的对应关系;终端与推送模块建立连接后,发送心跳包维持与该推送模块的连接。
[0021]终端订阅的推送频道记录会在终端离线后清除,终端可以同时订阅多个推送频道,终端也可以订阅之前从未有过的新频道;控制模块在保存终端订阅的推送频道后,会
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1