一种消息推送系统及方法_2

文档序号:9330655阅读:来源:国知局
br>[0023]本实施例中,推送模块MlOO和控制模块M200支持动态增加删除节点,线性扩展。推送模块MlOO用于保持终端海量连接,业务逻辑主要集中在控制模块M200,为达到资源最大利用率,推送模块MlOO和控制模块M200数量比可以控制为3:1。推送模块MlOO和控制模块M200均可使用负载均衡设备进行动态的、平滑的、对终端透明的方式增加和移除节点。
[0024]以下分别对终端登录流程、消息推送流程进行详细说明:
如图2所示,在具体实施时,终端包括但不限于智能手机、智能电视、平板电脑和可穿戴设备。终端先与控制模块M200建立短连接,在获取认证凭据后断开连接。终端获取认证凭据后与推送模块MlOO建立长连接,当有多个推送模块MlOO并存时,由负载均衡设备选取一个推送模块节点与终端建立连接。终端与推送模块MlOO建立连接后,传递认证凭据进行登录认证;推送模块MlOO与控制模块M200建立短连接验证凭据的有效性,并将验证结果返回终端;登录成功后终端发送心跳包维持与终端的连接。在认证凭据的有效期内,终端可以多次与推送模块MlOO建立连接,终端与多个推送模块MlOO建立连接时,只有最后一条连接能够建立成功。
[0025]控制模块M200在收到推送模块MlOO发来的终端认证凭据后,如果验证成功,会记录终端的IP、登录时间以及所连的推送模块MlOO在系统中的唯一标识,如果该凭据已存在在线终端,控制模块MlOO会同时通知已在线终端所连的推送模块MlOO将该终端踢下线,确保一个认证凭据只有一个终端使用。
[0026]终端与推送模块MlOO建立连接后,订阅感兴趣的推送频道,消息推送时只会将已订阅的频道消息向终端推送。订阅关系由推送模块MlOO传递给控制模块M200进行保存,在终端下线时,推送模块MlOO会将终端下线动作通知给控制模块M200,控制模块M200进而清空终端的订阅关系。
[0027]控制模块M200保存终端的订阅关系并返回订阅结果给推送模块MlOO后,同时异步的查询所订阅的推送频道是否已有离线消息。如果存在离线消息,控制模块M200主动与此终端所连的推送模块MlOO建立连接,将离线消息打包传送给推送模块M100。最后由推送模块MlOO将消息推送给终端。
[0028]终端收到离线消息后,向推送模块MlOO返回接收消息的反馈。推送模块MlOO进一步将通知反馈给控制模块M200,控制模块M200标记此消息和终端的收发关系,在终端下次订阅此推送频道时不再推送此消息。
[0029]上述为本发明实施例终端登录和推送离线消息的流程,相应的本发明实施例还提供一种主动消息推送方法,如图3所示,其包括:
控制模块M200接收推送消息,同时指定消息推送的频道和消息有效时间。推送频道必须指定,如未指定有效时间则使用系统默认时间,防止消息一直存在浪费资源。
[0030]控制模块M200从存储模块M300中读取推送频道当前在线终端,并将终端根据所连的推送模块MlOO进行分组S203。
[0031]控制模块M200根据分组信息将消息分别和对应的推送模块MlOO建立连接,并将消息和在线终端列表传递给推送模块M100。
[0032]推送模块MlOO依次将消息推送给指定终端。
[0033]终端收到消息后将接收通知反馈给推送模块M100,推送模块MlOO进而将通知反馈给控制模块M200,控制模块M200标记此消息送达状态,防止重复推送。
【主权项】
1.一种消息推送系统,其特征在于,包括至少一个用于发放终端认证凭据、接收消息推送命令、记录订阅状态和推送状态的控制模块;至少一个用于向终端发送推送消息的推送模块;当所述控制模块数量为一个时,所述控制模块与终端、推送模块通信;当所述控制模块数量为两个以上时,每个控制模块均与所有的推送模块通信,其中一个控制模块与终端通信;其中一个推送模块与终端通信。2.根据权利要求1所述的消息推送系统,其特征在于,所述推送模块与控制模块数量比为3:1。3.根据权利要求1所述的消息推送系统,其特征在于,所述控制模块与存储模块通信。4.根据权利要求3所述的消息推送系统,其特征在于,所述终端与推送模块之间的通信、控制模块与推送模块之间的通信采用不同端口进行隔离。5.根据权利要求1所述的消息推送系统,其特征在于,所述推送模块与所述控制模块之间采用全双工通信方式通信。6.一种利用权利要求1?5之一所述的消息推送系统进行消息推送的方法,其特征在于,该方法主要实现过程为:终端与控制模块通信,获取认证凭据;终端通过轮询的方法与推送模块建立连接,并向该推送模块发送认证凭据,推送模块收到认证凭据后,发送给控制模块确认认证凭据的有效性;验证有效后推送模块向终端返回登录成功的信息;终端向推送模块订阅推送频道,推送模块将订阅关系通知控制模块,控制模块记录此订阅关系;由消息发送方将消息发送给控制模块同时指定推送频道;控制模块根据订阅关系获取订阅终端,并将消息分发给相应推送模块;推送模块将消息推送到具体终端;最后终端返回消息反馈给推送模块;推送模块进一步将反馈传递给控制模块;控制模块记录此反馈,并标记该消息已被终端接收。7.根据权利要求6所述的方法,其特征在于,所述终端与所述推送模块采用MQTT协议通信。8.根据权利要求6或7所述的方法,其特征在于,所述控制模块确认认证凭据的有效性的实现过程包括:控制模块根据终端的唯一标识,返回代表该终端身份的唯一认证凭据,该认证凭据在24小时内有效;当终端尝试与多个推送模块建立连接时,保留最后一个连接;控制模块记录终端与推送模块的连接关系;终端与推送模块建立连接后,发送心跳包维持与该推送模块的连接。
【专利摘要】本发明公开了一种消息推送系统及方法,推送系统包括至少一个用于发放终端认证凭据、接收消息推送命令、记录订阅状态和推送状态的控制模块;至少一个用于向终端发送推送消息的推送模块;当所述控制模块数量为一个时,所述控制模块与终端、推送模块通信;当所述控制模块数量为两个以上时,每个控制模块均与所有的推送模块通信,其中一个控制模块与终端通信;其中一个推送模块与终端通信。本发明支持千万级终端接入,能够极大地降低终端接入成本,在海量终端接入和高并发访问的情况下,也能够及时推送消息;通过MQTT实现分布式消息推送,降低了消息推送的带宽,提高了消息推送的准确性。
【IPC分类】H04L29/08
【公开号】CN105049531
【申请号】CN201510522433
【发明人】殷伟雄, 于家鹏, 黄柔刚
【申请人】湖南快乐阳光互动娱乐传媒有限公司
【公开日】2015年11月11日
【申请日】2015年8月24日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1