CN105049531A - 一种消息推送系统及方法 - Google Patents

一种消息推送系统及方法 Download PDF

Info

Publication number
CN105049531A
CN105049531A CN201510522433.8A CN201510522433A CN105049531A CN 105049531 A CN105049531 A CN 105049531A CN 201510522433 A CN201510522433 A CN 201510522433A CN 105049531 A CN105049531 A CN 105049531A
Authority
CN
China
Prior art keywords
terminal
control module
pushing
module
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.)
Pending
Application number
CN201510522433.8A
Other languages
English (en)
Inventor
殷伟雄
于家鹏
黄柔刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Happly Sunshine Interactive Entertainment Media Co Ltd
Original Assignee
Hunan Happly Sunshine Interactive Entertainment Media Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Happly Sunshine Interactive Entertainment Media Co Ltd filed Critical Hunan Happly Sunshine Interactive Entertainment Media Co Ltd
Priority to CN201510522433.8A priority Critical patent/CN105049531A/zh
Publication of CN105049531A publication Critical patent/CN105049531A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种消息推送系统及方法,推送系统包括至少一个用于发放终端认证凭据、接收消息推送命令、记录订阅状态和推送状态的控制模块;至少一个用于向终端发送推送消息的推送模块;当所述控制模块数量为一个时,所述控制模块与终端、推送模块通信;当所述控制模块数量为两个以上时,每个控制模块均与所有的推送模块通信,其中一个控制模块与终端通信;其中一个推送模块与终端通信。本发明支持千万级终端接入,能够极大地降低终端接入成本,在海量终端接入和高并发访问的情况下,也能够及时推送消息;通过MQTT实现分布式消息推送,降低了消息推送的带宽,提高了消息推送的准确性。

Description

一种消息推送系统及方法
技术领域
本发明涉及数字通信领域,特别是一种消息推送系统及方法。
背景技术
目前,移动通信已从模拟通信发展到了数字移动通信阶段,未来移动通信的目标是,能在任何时间、任何地点、向任何人提供快速可靠的通信服务,因此,如何实现即时通信和离线消息的推送受到越来越多的关注。
MQTT协议是一种轻量级的、基于代理的“发布/订阅”模式的消息传输协议,协议简洁、小巧、可扩展性强、省流量、省电,为移动终端推送量身定制。
随着智能操作系统广泛应用到智能手机、平板电脑以及智能电视中,现有的消息推送方法仍停留在PC时代,无法实现分布式消息推送;使用臃肿的HTTP、XMPP协议进行通信,宽带占用高;推送与接入耦合紧密,不能进行伸缩部署,在海量终端的接入、高并发访问的情况下,不能及时推送消息,无法满足千万级终端接入;对于离线用户的消息推送不友好,或者根本不支持。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种消息推送系统及方法。
为解决上述技术问题,本发明所采用的技术方案是:一种消息推送系统,包括至少一个用于发放终端认证凭据、接收消息推送命令、记录订阅状态和推送状态的控制模块;至少一个用于向终端发送推送消息的推送模块;当所述控制模块数量为一个时,所述控制模块与终端、推送模块通信;当所述控制模块数量为两个以上时,每个控制模块均与所有的推送模块通信,其中一个控制模块与终端通信;其中一个推送模块与终端通信。
所述推送模块与控制模块数量比为3:1。
所述控制模块与存储模块通信。存储模块可以存储海量数据信息。
所述推送模块与所述控制模块之间采用全双工通信方式通信。所述终端与推送模块之间的通信、控制模块与推送模块之间的通信采用不同端口进行隔离,提高系统的安全性。
一种利用上述消息推送系统进行消息推送的方法,该方法主要实现过程为:终端与控制模块通信,获取认证凭据;终端通过轮询的方法与推送模块建立连接,并向该推送模块发送认证凭据,推送模块收到认证凭据后,发送给控制模块确认认证凭据的有效性;验证有效后推送模块向终端返回登录成功的信息;终端向推送模块订阅推送频道,推送模块将订阅关系通知控制模块,控制模块记录此订阅关系;由消息发送方将消息发送给控制模块同时指定推送频道;控制模块根据订阅关系获取订阅终端,并将消息分发给相应推送模块;推送模块将消息推送到具体终端;最后终端返回消息反馈给推送模块;推送模块进一步将反馈传递给控制模块;控制模块记录此反馈,并标记该消息已被终端接收。
所述终端与所述推送模块采用MQTT协议通信。降低了消息推送的带宽,提高了消息推送的准确性。
所述控制模块确认认证凭据的有效性的实现过程包括:控制模块根据终端的唯一标识,返回代表该终端身份的唯一认证凭据,该认证凭据在24小时内有效;当终端尝试与多个推送模块建立连接时,保留最后一个连接;控制模块记录终端与推送模块的连接关系;终端与推送模块建立连接后,发送心跳包维持与该推送模块的连接。
与现有技术相比,本发明所具有的有益效果为:本发明支持千万级终端接入,能够极大地降低终端接入成本,在海量终端接入和高并发访问的情况下,也能够及时推送消息;支持离线用户的消息推送;通过MQTT实现分布式消息推送,降低了消息推送的带宽,提高了消息推送的准确性;本发明系统的各个模块相对独立,可以分散部署在不同的机器上,可根据终端接入数目和消息推送数量动态调配服务器资源,达到伸缩部署、高性能、高并发的目的,实现了分布式消息推送。
附图说明
图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 (8)

1.一种消息推送系统,其特征在于,包括至少一个用于发放终端认证凭据、接收消息推送命令、记录订阅状态和推送状态的控制模块;至少一个用于向终端发送推送消息的推送模块;当所述控制模块数量为一个时,所述控制模块与终端、推送模块通信;当所述控制模块数量为两个以上时,每个控制模块均与所有的推送模块通信,其中一个控制模块与终端通信;其中一个推送模块与终端通信。
2.根据权利要求1所述的消息推送系统,其特征在于,所述推送模块与控制模块数量比为3:1。
3.根据权利要求1所述的消息推送系统,其特征在于,所述控制模块与存储模块通信。
4.根据权利要求3所述的消息推送系统,其特征在于,所述终端与推送模块之间的通信、控制模块与推送模块之间的通信采用不同端口进行隔离。
5.根据权利要求1所述的消息推送系统,其特征在于,所述推送模块与所述控制模块之间采用全双工通信方式通信。
6.一种利用权利要求1~5之一所述的消息推送系统进行消息推送的方法,其特征在于,该方法主要实现过程为:终端与控制模块通信,获取认证凭据;终端通过轮询的方法与推送模块建立连接,并向该推送模块发送认证凭据,推送模块收到认证凭据后,发送给控制模块确认认证凭据的有效性;验证有效后推送模块向终端返回登录成功的信息;终端向推送模块订阅推送频道,推送模块将订阅关系通知控制模块,控制模块记录此订阅关系;由消息发送方将消息发送给控制模块同时指定推送频道;控制模块根据订阅关系获取订阅终端,并将消息分发给相应推送模块;推送模块将消息推送到具体终端;最后终端返回消息反馈给推送模块;推送模块进一步将反馈传递给控制模块;控制模块记录此反馈,并标记该消息已被终端接收。
7.根据权利要求6所述的方法,其特征在于,所述终端与所述推送模块采用MQTT协议通信。
8.根据权利要求6或7所述的方法,其特征在于,所述控制模块确认认证凭据的有效性的实现过程包括:控制模块根据终端的唯一标识,返回代表该终端身份的唯一认证凭据,该认证凭据在24小时内有效;当终端尝试与多个推送模块建立连接时,保留最后一个连接;控制模块记录终端与推送模块的连接关系;终端与推送模块建立连接后,发送心跳包维持与该推送模块的连接。
CN201510522433.8A 2015-08-24 2015-08-24 一种消息推送系统及方法 Pending CN105049531A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510522433.8A CN105049531A (zh) 2015-08-24 2015-08-24 一种消息推送系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510522433.8A CN105049531A (zh) 2015-08-24 2015-08-24 一种消息推送系统及方法

Publications (1)

Publication Number Publication Date
CN105049531A true CN105049531A (zh) 2015-11-11

Family

ID=54455734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510522433.8A Pending CN105049531A (zh) 2015-08-24 2015-08-24 一种消息推送系统及方法

Country Status (1)

Country Link
CN (1) CN105049531A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107592351A (zh) * 2017-09-06 2018-01-16 北京锐安科技有限公司 一种基于Redis的多用户发布订阅方法及系统
CN109151043A (zh) * 2018-09-06 2019-01-04 北京赛佰特科技有限公司 基于云服务的消息传输系统
CN110113362A (zh) * 2019-05-29 2019-08-09 杭州海兴泽科信息技术有限公司 一种基于mqtt协议的消息实时推送方法
CN110381057A (zh) * 2019-07-17 2019-10-25 上海庆科信息技术有限公司 通讯连接的处理方法、装置、存储介质、处理器及系统
CN110460638A (zh) * 2019-07-11 2019-11-15 深圳职业技术学院 消息推送方法及装置
CN111104376A (zh) * 2019-12-19 2020-05-05 湖南快乐阳光互动娱乐传媒有限公司 资源文件查询方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030163700A1 (en) * 2002-02-28 2003-08-28 Nokia Corporation Method and system for user generated keys and certificates
CN103546528A (zh) * 2013-02-05 2014-01-29 Tcl集团股份有限公司 分布式消息推送方法及系统
CN104170424A (zh) * 2012-03-19 2014-11-26 诺基亚公司 用于订阅共享的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030163700A1 (en) * 2002-02-28 2003-08-28 Nokia Corporation Method and system for user generated keys and certificates
CN104170424A (zh) * 2012-03-19 2014-11-26 诺基亚公司 用于订阅共享的方法和装置
CN103546528A (zh) * 2013-02-05 2014-01-29 Tcl集团股份有限公司 分布式消息推送方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107592351A (zh) * 2017-09-06 2018-01-16 北京锐安科技有限公司 一种基于Redis的多用户发布订阅方法及系统
CN107592351B (zh) * 2017-09-06 2021-01-12 北京锐安科技有限公司 一种基于Redis的多用户发布订阅方法及系统
CN109151043A (zh) * 2018-09-06 2019-01-04 北京赛佰特科技有限公司 基于云服务的消息传输系统
CN110113362A (zh) * 2019-05-29 2019-08-09 杭州海兴泽科信息技术有限公司 一种基于mqtt协议的消息实时推送方法
CN110460638A (zh) * 2019-07-11 2019-11-15 深圳职业技术学院 消息推送方法及装置
CN110381057A (zh) * 2019-07-17 2019-10-25 上海庆科信息技术有限公司 通讯连接的处理方法、装置、存储介质、处理器及系统
CN111104376A (zh) * 2019-12-19 2020-05-05 湖南快乐阳光互动娱乐传媒有限公司 资源文件查询方法及装置
CN111104376B (zh) * 2019-12-19 2023-04-07 湖南快乐阳光互动娱乐传媒有限公司 资源文件查询方法及装置

Similar Documents

Publication Publication Date Title
CN105049531A (zh) 一种消息推送系统及方法
CN106230896A (zh) 一种消息推送方法、装置及系统
CN102377685B (zh) 一种订阅消息的发送系统以及订阅消息的发送方法
WO2007083291B1 (en) Apparatus and method for many-to-many mobile messaging
CN102196591A (zh) 移动终端并行传输数据的方法和移动终端
CN109327513B (zh) 交互方法、装置及计算机可读存储介质
CN102355637A (zh) 一种移动终端即时通讯处理方法及装置
CN103442030A (zh) 发送和处理业务请求信息的方法和系统以及客户端装置
CN103096271A (zh) 信息推送系统和信息推送方法
CN101594318A (zh) 一种实现邮件和即时消息互通的方法和系统
CN110808948B (zh) 远程过程调用方法、装置及系统
CN105991481B (zh) 一种报文转发方法及装置
CN103095684A (zh) 获取关注用户聚合信息的方法、装置及系统
CN104539510A (zh) 一种基于多协议的信息推送系统及方法
CN100596123C (zh) 一种网关系统及其消息业务处理方法
CN102360473A (zh) 一种省地电力调度自动化系统间数据共享方法
CN101599921A (zh) 一种企业即时通信系统及其文件传输方法
CN204906435U (zh) 一种消息推送系统
CN102209050B (zh) 一种用户信息共享的即时通讯系统及方法
CN104168273A (zh) 一种瘦ap模式下实现tcp代理的方法及系统
KR101272077B1 (ko) 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법
CN102238493A (zh) 基于m2m平台的有序收发消息的方法及装置
CN102209048B (zh) 一种用于实现用户信息共享的即时通讯系统及方法
CN101184062B (zh) 一种调整信息服务器负载的方法、装置及系统
CN102299937A (zh) 一种基于网络的分配时钟服务器的方法及其系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20151111