CN204906435U - 一种消息推送系统 - Google Patents
一种消息推送系统 Download PDFInfo
- Publication number
- CN204906435U CN204906435U CN201520641339.XU CN201520641339U CN204906435U CN 204906435 U CN204906435 U CN 204906435U CN 201520641339 U CN201520641339 U CN 201520641339U CN 204906435 U CN204906435 U CN 204906435U
- Authority
- CN
- China
- Prior art keywords
- terminal
- module
- control module
- pushing
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 claims description 21
- 238000011161 development Methods 0.000 abstract 1
- 230000018109 developmental process Effects 0.000 abstract 1
- 239000006185 dispersion Substances 0.000 abstract 1
- 238000000034 method Methods 0.000 description 12
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本实用新型公开了一种消息推送系统,包括至少一个控制模块、至少一个推送模块;当所述控制模块数量为一个时,所述控制模块与终端、推送模块通信;当所述控制模块数量为两个以上时,每个控制模块均与所有的推送模块通信,其中一个控制模块与终端通信;其中一个推送模块与终端通信。本实用新型系统的模块相对独立,因此可以分散部署在不同的机器上,从而可根据终端接入数目和消息推送数量动态调配服务器资源,达到伸缩部署、高性能、高并发的目的,能实现分布式消息推送。
Description
技术领域
本实用新型涉及数字通信领域,特别是一种消息推送系统。
背景技术
目前,移动通信已从模拟通信发展到了数字移动通信阶段,未来移动通信的目标是,能在任何时间、任何地点、向任何人提供快速可靠的通信服务,因此,如何实现即时通信和离线消息的推送受到越来越多的关注。
MQTT协议是一种轻量级的、基于代理的“发布/订阅”模式的消息传输协议,协议简洁、小巧、可扩展性强、省流量、省电,为移动终端推送量身定制。
随着智能操作系统广泛应用到智能手机、平板电脑以及智能电视中,现有的消息推送方法仍停留在PC时代,无法实现分布式消息推送;推送与接入耦合紧密,不能进行伸缩部署,在海量终端的接入、高并发访问的情况下,不能及时推送消息,无法满足千万级终端接入。
发明内容
本实用新型所要解决的技术问题是,针对现有技术不足,提供一种消息推送系统。
为解决上述技术问题,本实用新型所采用的技术方案是:一种消息推送系统,包括至少一个控制模块、至少一个推送模块;当所述控制模块数量为一个时,所述控制模块与终端、推送模块通信;当所述控制模块数量为两个以上时,每个控制模块均与所有的推送模块通信,其中一个控制模块与终端通信;其中一个推送模块与终端通信。
所述推送模块与控制模块数量比为3:1。
所述控制模块与存储模块通信。存储模块可以存储海量数据信息。
所述推送模块与所述控制模块之间采用全双工通信方式通信。所述终端与推送模块之间的通信、控制模块与推送模块之间的通信采用不同端口进行隔离,提高系统的安全性。
一种利用上述消息推送系统进行消息推送的方法,该方法主要实现过程为:终端与控制模块通信,获取认证凭据;终端通过轮询的方法与推送模块建立连接,并向该推送模块发送认证凭据,推送模块收到认证凭据后,发送给控制模块确认认证凭据的有效性;验证有效后推送模块向终端返回登录成功的信息;终端向推送模块订阅推送频道,推送模块将订阅关系通知控制模块,控制模块记录此订阅关系;由消息发送方将消息发送给控制模块同时指定推送频道;控制模块根据订阅关系获取订阅终端,并将消息分发给相应推送模块;推送模块将消息推送到具体终端;最后终端返回消息反馈给推送模块;推送模块进一步将反馈传递给控制模块;控制模块记录此反馈,并标记该消息已被终端接收。
所述终端与所述推送模块采用MQTT协议通信。降低了消息推送的带宽,提高了消息推送的准确性。
所述控制模块确认认证凭据的有效性的实现过程包括:控制模块根据终端的唯一标识,返回代表该终端身份的唯一认证凭据,该认证凭据在24小时内有效;当终端尝试与多个推送模块建立连接时,保留最后一个连接;控制模块记录终端与推送模块的连接关系;终端与推送模块建立连接后,发送心跳包维持与该推送模块的连接。
与现有技术相比,本实用新型所具有的有益效果为:本实用新型系统的各个模块相对独立,因此可以分散部署在不同的机器上,从而可根据终端接入数目和消息推送数量动态调配服务器资源,达到伸缩部署、高性能、高并发的目的,能实现分布式消息推送。
附图说明
图1为本实用新型一实施例结构框图;
图2为本实用新型实施例离线消息推送流程图;
图3为本实用新型实施例主动消息推送流程图。
具体实施方式
如图1所示,本实用新型系统包括推送模块、控制模块和存储模块。推送模块与控制模块之间构成双向全双工通信,存储模块只与控制模块相连。推送模块M100和终端构成全双工通信,通信使用MQTT协议;推送模块M100和控制模块M200同样是全双工通信;推送模块M100不和存储模块M300直接通信,控制模块M200和存储模块M300之间的通信由控制模块M200主动发起。推送模块M100用于向终端发送推送消息;控制模块用于发放终端认证凭据、接收消息推送、记录订阅状态和推送状态;存储模块用于存储数据;终端与控制模块之间的连接为短连接,通信完后两者之间的连接立即断开。
本实用新型推送方法实现过程为:终端向所述控制模块通信,获取认证凭据;终端与推送模块建立连接,并传递凭据进行认证;推送模块与控制模块通信验证凭据的有效性,并返回登录结果给终端;终端登录成功后,向推送模块订阅相关的推送频道;推送模块向控制模块通报此订阅关系;由消息发送方将消息发送给推送模块并指定推送频道;控制模块根据推送频道以及记录的订阅关系获取在线终端;控制模块将在线终端根据其所连的推送模块进行分组,并将消息和终端列表传递给推送模块;推送模块依次将消息推送给终端列表中的终端;终端收到消息后,向推送模块返回接收消息的反馈通知;推送模块向控制模块上报此反馈,并由控制模块记录此反馈。
终端与推送模块之间的通信全部采用MQTT协议。
控制模块会根据终端唯一标识,返回代表该终端身份的唯一认证凭据;认证凭据只在一定期限内有效;一个终端只允许与一个推送模块建立连接,终端尝试与多个推送模块建立连接时,只会保留最后一个连接;在凭证有效期内终端可以反复与任意一个推送模块建立连接进行认证;控制模块会记录终端与推送模块的对应关系;终端与推送模块建立连接后,发送心跳包维持与该推送模块的连接。
终端订阅的推送频道记录会在终端离线后清除,终端可以同时订阅多个推送频道,终端也可以订阅之前从未有过的新频道;控制模块在保存终端订阅的推送频道后,会检查此频道已产生的离线消息,并将未过期的消息推送给终端。
发送消息指定推送频道的同时可以指定消息的有效期,消息首先会被送达订阅此频道的在线终端,并在消息有效期内保存此消息,随后上线的终端订阅了此频道都会收到此消息;终端收到消息后向上进行反馈,确保消息不会被重复送达。
终端与推送模块之间的通信,控制模块与推送模块之间的通信使用不同端口进行隔离,提高系统的安全性。
推送模块使用队列、异步事件处理机制,确保在高并发情况下不会进行堵塞。
本实施例中,推送模块M100和控制模块M200支持动态增加删除节点,线性扩展。推送模块M100用于保持终端海量连接,业务逻辑主要集中在控制模块M200,为达到资源最大利用率,推送模块M100和控制模块M200数量比可以控制为3:1。推送模块M100和控制模块M200均可使用负载均衡设备进行动态的、平滑的、对终端透明的方式增加和移除节点。
以下分别对终端登录流程、消息推送流程进行详细说明:
如图2所示,在具体实施时,终端包括但不限于智能手机、智能电视、平板电脑和可穿戴设备。终端先与控制模块M200建立短连接,在获取认证凭据后断开连接。终端获取认证凭据后与推送模块M100建立长连接,当有多个推送模块M100并存时,由负载均衡设备选取一个推送模块节点与终端建立连接。终端与推送模块M100建立连接后,传递认证凭据进行登录认证;推送模块M100与控制模块M200建立短连接验证凭据的有效性,并将验证结果返回终端;登录成功后终端发送心跳包维持与终端的连接。在认证凭据的有效期内,终端可以多次与推送模块M100建立连接,终端与多个推送模块M100建立连接时,只有最后一条连接能够建立成功。
控制模块M200在收到推送模块M100发来的终端认证凭据后,如果验证成功,会记录终端的IP、登录时间以及所连的推送模块M100在系统中的唯一标识,如果该凭据已存在在线终端,控制模块M100会同时通知已在线终端所连的推送模块M100将该终端踢下线,确保一个认证凭据只有一个终端使用。
终端与推送模块M100建立连接后,订阅感兴趣的推送频道,消息推送时只会将已订阅的频道消息向终端推送。订阅关系由推送模块M100传递给控制模块M200进行保存,在终端下线时,推送模块M100会将终端下线动作通知给控制模块M200,控制模块M200进而清空终端的订阅关系。
控制模块M200保存终端的订阅关系并返回订阅结果给推送模块M100后,同时异步的查询所订阅的推送频道是否已有离线消息。如果存在离线消息,控制模块M200主动与此终端所连的推送模块M100建立连接,将离线消息打包传送给推送模块M100。最后由推送模块M100将消息推送给终端。
终端收到离线消息后,向推送模块M100返回接收消息的反馈。推送模块M100进一步将通知反馈给控制模块M200,控制模块M200标记此消息和终端的收发关系,在终端下次订阅此推送频道时不再推送此消息。
上述为本实用新型实施例终端登录和推送离线消息的流程,相应的本实用新型实施例还提供一种主动消息推送方法,如图3所示,其包括:
控制模块M200接收推送消息,同时指定消息推送的频道和消息有效时间。推送频道必须指定,如未指定有效时间则使用系统默认时间,防止消息一直存在浪费资源。
控制模块M200从存储模块M300中读取推送频道当前在线终端,并将终端根据所连的推送模块M100进行分组S203。
控制模块M200根据分组信息将消息分别和对应的推送模块M100建立连接,并将消息和在线终端列表传递给推送模块M100。
推送模块M100依次将消息推送给指定终端。
终端收到消息后将接收通知反馈给推送模块M100,推送模块M100进而将通知反馈给控制模块M200,控制模块M200标记此消息送达状态,防止重复推送。
Claims (4)
1.一种消息推送系统,其特征在于,包括至少一个控制模块、至少一个推送模块;当所述控制模块数量为一个时,所述控制模块与终端、推送模块通信;当所述控制模块数量为两个以上时,每个控制模块均与所有的推送模块通信,其中一个控制模块与终端通信;其中一个推送模块与终端通信。
2.根据权利要求1所述的消息推送系统,其特征在于,所述推送模块与控制模块数量比为3:1。
3.根据权利要求1所述的消息推送系统,其特征在于,所述控制模块与存储模块通信。
4.根据权利要求3所述的消息推送系统,其特征在于,所述终端与推送模块之间的通信、控制模块与推送模块之间的通信采用不同端口进行隔离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201520641339.XU CN204906435U (zh) | 2015-08-24 | 2015-08-24 | 一种消息推送系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201520641339.XU CN204906435U (zh) | 2015-08-24 | 2015-08-24 | 一种消息推送系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN204906435U true CN204906435U (zh) | 2015-12-23 |
Family
ID=54928577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201520641339.XU Active CN204906435U (zh) | 2015-08-24 | 2015-08-24 | 一种消息推送系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN204906435U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111212135A (zh) * | 2019-12-31 | 2020-05-29 | 北京金山云网络技术有限公司 | 消息订阅方法、装置、系统、电子设备及存储介质 |
-
2015
- 2015-08-24 CN CN201520641339.XU patent/CN204906435U/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111212135A (zh) * | 2019-12-31 | 2020-05-29 | 北京金山云网络技术有限公司 | 消息订阅方法、装置、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105049531A (zh) | 一种消息推送系统及方法 | |
CN106230896A (zh) | 一种消息推送方法、装置及系统 | |
CN102377685B (zh) | 一种订阅消息的发送系统以及订阅消息的发送方法 | |
CN102196591A (zh) | 移动终端并行传输数据的方法和移动终端 | |
CN109327513B (zh) | 交互方法、装置及计算机可读存储介质 | |
CN101079869B (zh) | 一种基于分布式的数据同步方法及系统 | |
CN102209047B (zh) | 一种信息共享的即时通讯系统及方法 | |
CN105847139A (zh) | 数据传输方法、装置及系统 | |
GB0602523D0 (en) | Community messaging system | |
CN106603711B (zh) | 通信方法、系统及消息服务器 | |
CN102316133A (zh) | 一种负载均衡方法及装置 | |
CN108932182B (zh) | 一种消息总线性能测试方法及系统 | |
CN102448146A (zh) | 终端设备接入网络的控制方法、装置及接入网元 | |
CN103179009B (zh) | 一种分布式管理系统的动态自适应调用方法 | |
CN104954155A (zh) | 具有多个业务板的网络设备以及多业务板分担方法 | |
CN102360473A (zh) | 一种省地电力调度自动化系统间数据共享方法 | |
CN204906435U (zh) | 一种消息推送系统 | |
CN102209050B (zh) | 一种用户信息共享的即时通讯系统及方法 | |
CN102209049B (zh) | 一种用户信息处理的即时通讯系统及方法 | |
KR101272077B1 (ko) | 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법 | |
CN102209048B (zh) | 一种用于实现用户信息共享的即时通讯系统及方法 | |
CN102238493A (zh) | 基于m2m平台的有序收发消息的方法及装置 | |
CN102299937A (zh) | 一种基于网络的分配时钟服务器的方法及其系统 | |
CN106790480B (zh) | 一种用于链路聚合链接条件下的文件传输方法 | |
CN108141907A (zh) | 一种通过终端与服务器控制所述终端的一个通信模块的休眠模式的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |