基于MQTT的企业消息推送方法与流程

文档序号:15358465发布日期:2018-09-05 00:18阅读:163来源:国知局

本发明涉及一种基于mqtt的企业消息推送系统及消息推送方法。



背景技术:

企业消息推送系统是为企业办公自动化定制的消息推送服务,其核心功能包括企业内部社交平台、企业即时消息和状态呈现、企业内部通讯录和上下游通讯录等。随着移动互联网的兴起,企业消息推送系统也从传统的pc端发展成为跨平台的多终端(手机端和pc端)系统。在这个过程中,移动互联网相对于传统的互联网的特点以及移动终端相对于pc端的性能状况给企业消息推送系统的设计提出了新的问题和挑战,其中,最显著的问题是消息推送方案的制定。

当前主要的推送方案包括gcm(googlecloudmessaging)服务、xmpp(theextensiblemessagingandpresenceprotocol)、mqtt(messagequeuingtelemetrytransport)以及使用http轮询方式。http轮询方式简单易实现,但是实时性和可扩展性都较差。xmpp是ietf标准化的通信协议,其功能强大、可扩展性强等特性使得其在互联网领域有着广泛应用。但是协议复杂和信息冗余使得其不适合移动互联网的应用特点。gcm是google公司推出的云消息服务,在能源消耗方面较mqtt有一定的优势,但是受限于网络及安全环境,不适于构建企业消息推送系统。



技术实现要素:

本发明的目的是提供一种基于mqtt的企业消息推送系统,其在满足了应用需求的同时保证了协议的简单易实现和流量消耗小等适用于移动互联网的优势。

为了实现上述目的,本发明采用的技术方案如下:一种基于mqtt的企业消息推送系统,包括客户端、与所述客户端进行交互的静态服务器群和动态服务器群及使所述静态服务器群和动态服务器群进行内部操作和通信的控制单元和消息总线;所述客户端发出用户登陆请求至静态服务器群以登陆静态服务器群,所述静态服务器群在客户登陆静态服务器群后将该用户的个人信息推送给客户端,动态服务器群将动态登陆口令推送给客户端,所述客户端获取该动态登陆口令后根据该动态登陆口令发出验证信息至动态服务器群,所述动态服务器群接收该验证信息,客户端登陆动态服务器,动态服务器群与客户端建立即时通信,当所述动态服务器群与客户端建立即时通信后,所述客户端发送即时消息给动态服务器群,所述动态服务器群实时存储该即时消息并将即时消息转发,在所述客户端登陆动态服务器后,所述动态服务器推送信息或转发即时消息给客户端,控制单元根据个人信息区分其为通知、状态程序和即时消息,并推送给客户端。

进一步的,所述静态服务器群和动态服务器群之间采用非对称的服务器集群架构,所述静态服务器群内含有若干采用对称的服务器集群架构的静态服务器,所述动态服务器群内含有若干采用对称的服务器集群架构的动态服务器。

进一步的,所述客户端为手机或电脑。

本发明还提供了一种基于mqtt的企业消息推送方法,包括:

s1:客户端发出用户登陆请求至静态服务器群以登陆静态服务器群;

s2:静态服务器群在客户登陆静态服务器群后将该用户的个人信息推送给客户端,同时,动态服务器群将动态登陆口令推送给客户端;

s3:客户端获取该动态登陆口令后根据该动态登陆口令发出验证信息至动态服务器群,所述动态服务器群接收该验证信息以分析该验证信息是否正确,若正确,则客户端登陆动态服务器,动态服务器群与客户端建立即时通信,当所述动态服务器群与客户端建立即时通信后,所述客户端发送即时消息给动态服务器群,所述动态服务器群实时存储该即时消息并将即时消息转发,在所述客户端登陆动态服务器后,所述动态服务器推送信息或转发即时消息给客户端,控制单元根据个人信息区分其为通知、状态程序和即时消息,并推送给客户端。

进一步的,所述静态服务器群推送的个人信息包含用户通讯录。

进一步的,所述静态服务器群在推动个人信息给客户端时,所述静态服务器群同时生成系统通知信息,并通过消息总线发送至动态服务器群,所述动态服务器群接收系统通知信息以生成动态登陆口令并推送至客户端。

进一步的,在所述步骤s1中,所述个人信息加密存储在客户端,其中,当客户端在登陆静态服务器群时,如可正常加载本地存储的个人信息,则只向静态服务器群发送个人信息更新请求;否则,向静态服务器群请求全部的个人信息。

进一步的,所述静态服务器群和动态服务器群之间采用非对称的服务器集群架构,所述静态服务器群内含有若干采用对称的服务器集群架构的静态服务器,所述动态服务器群内含有若干采用对称的服务器集群架构的动态服务器。

进一步的,所述客户端为手机或电脑。

借由上述方案,本发明至少具有以下优点:本发明的基于mqtt的企业消息推送系统及消息推送方法在满足了应用需求的同时保证了协议的简单易实现和流量消耗小等适用于移动互联网的优势。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。

附图说明

图1是本发明基于mqtt的企业消息推送系统的系统架构图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

mqtt协议由ibm在1999年设计和提出,其设计目的主要是为大量计算能力有限,且工作在低带宽、不可靠网络的远程传感器和控制设备提供一种开放、精简、轻量级和容易实现的通信方法。其主要特性包括对负载内容屏蔽的消息传输、三种消息发布服务质量和低流量传输等。自提出以来,mqtt已经广泛的应用于手机和无线传感器等计算和存储资源受限的环境中,并被医疗机构、石油和天然气公司、大学和互联网公司分别用于科研和工程产品中。mqtt在确保和加速消息推送、节约客户端带宽和电量资源等方面表现出了良好的性能。mqtt是以数据为中心,其对内容的不可知及二进制数据传输这一特性使得mqtt非常适用于那种需要频繁的发送小量更新数据的应用。

参见图1,本发明一较佳实施例所述的一种基于mqtt的企业消息推送系统包括客户端1、与所述客户端1进行交互的静态服务器群2和动态服务器群3及使所述静态服务器群2和动态服务器群3进行内部操作和通信的控制单元4和消息总线5。所述静态服务器群2负责处理用户的静态信息,包括账号系统、用户关系系统及用户操作日志等,所述动态服务器群3负载处理用户的动态信息,是用户之间建立通信关系的主要模块,负责用户即时消息的存储和转发。该静态信息和动态信息为即时通信协议中的用户信息,其中,静态信息主要定义为在用户建立连接后不会发生变化的信息,静态信息主要是在登陆过程为用户所请求或发送,其内容包括用户通讯录、用户账号密码、好友关系、用户头像等详细信息和用户所属企业组织架构等信息。动态信息定义为在用户建立连接后实时传输的信息,这种信息主要包括即时聊天信息、用户的登陆状态和签名等信息。静态信息和动态信息之间的关系并不是绝对的。用户在登陆之后的操作既可能涉及到动态信息也可能涉及到静态信息。

所述客户端1发出用户登陆请求至静态服务器群2以登陆静态服务器群2,所述静态服务器群2在客户登陆静态服务器群2后将该用户的个人信息推送给客户端1,该静态服务器群2推送的个人信息包含用户通讯录。动态服务器群3将动态登陆口令推送给客户端1,所述客户端1获取该动态登陆口令后根据该动态登陆口令发出验证信息至动态服务器群3,所述动态服务器群3接收该验证信息,客户端1登陆动态服务器,动态服务器群3与客户端1建立即时通信,当所述动态服务器群3与客户端1建立即时通信后,所述客户端1发送即时消息给动态服务器群3,所述动态服务器群3实时存储该即时消息并将即时消息转发,在所述客户端1登陆动态服务器后,所述动态服务器推送信息或转发即时消息给客户端1,控制单元4根据个人信息区的用户通讯录分其为通知、状态程序和即时消息,并推送给客户端1。

所述静态服务器群2和动态服务器群3之间采用非对称(asymmetric)的服务器集群架构,所述静态服务器群2内含有若干采用对称(symmetric)的服务器集群架构的静态服务器,所述动态服务器群3内含有若干采用对称(symmetric)的服务器集群架构的动态服务器;其中,采用非对称的服务器集群架构的特点是不同的服务器实现不同的系统功能,如aim和msn即使用非对称的服务器集群架构,所述对称的服务器集群架构的特点是每一台服务器都执行相同的功能,用户在登陆和使用时不区分不同的服务器,如ymsg即使用对称的服务器集群架构,通过在静态服务器群2和动态服务器群3采用对称的服务器集群架构使得系统的信息流简单明确,同时静态服务器群2和动态服务器群3可以在各种信息类型内部做功能扩展,比如通过一定的中央路由机制可以在不改变静态服务器的同时将动态服务器扩展成集群架构,反之亦然。所述客户端1为手机或电脑。

控制单元4和消息总线5操作的内容主要包括:

(1)话题控制。根据用户通讯录(静态服务器群2)控制用户话题(动态服务器群3),即区别通知、状态程序和即时消息,从而实现话题的创建和删除以及话题的预订阅等。

(2)系统通知的生成。根据用户静态控制操作(静态服务器群2)生成系统通知消息(动态服务器群3)。

(3)日志维护。日志维护主要为系统管理和数据分析提供便捷,将日志维护的压力从静态服务器群2和动态服务器群3转移到控制单元4也有助于提高静态服务器群2和动态服务器群3的吞吐量。

请结合图1,一种基于mqtt的企业消息推送方法,可用于上述基于mqtt的企业消息推送系统,所述系统已在前述描述,故不在赘述,该方法包括步骤s1至步骤s3。

s1:客户端1发出用户登陆请求至静态服务器群2以登陆静态服务器群2。静态服务器群2推送的个人信息包含用户通讯录。在本步骤s1中,所述个人信息加密存储在客户端1,其中,当客户端1在登陆静态服务器群2时,如可正常加载本地存储的个人信息,则只向静态服务器群2发送个人信息更新请求;否则,向静态服务器群2请求全部的个人信息;采用此种方式,可以减缓静态服务器群2在客户端1登录时承受的瞬时数据同步压力。

s2:静态服务器群2在客户登陆静态服务器群2后将该用户的个人信息推送给客户端1,同时,动态服务器群3将动态登陆口令推送给客户端1。所述静态服务器群2在推动个人信息给客户端1时,所述静态服务器群2同时生成系统通知信息,并通过消息总线5发送至动态服务器群3,所述动态服务器群3接收系统通知信息以生成动态登陆口令并推送至客户端1。

s3:客户端1获取该动态登陆口令后根据该动态登陆口令发出验证信息至动态服务器群3,所述动态服务器群3接收该验证信息以分析该验证信息是否正确,若正确,则客户端1登陆动态服务器,动态服务器群3与客户端1建立即时通信,当所述动态服务器群3与客户端1建立即时通信后,所述客户端1发送即时消息给动态服务器群3,所述动态服务器群3实时存储该即时消息并将即时消息转发,在所述客户端1登陆动态服务器后,所述动态服务器推送信息或转发即时消息给客户端1,控制单元4根据个人信息的用户通讯录区分其为通知、状态程序和即时消息,并推送给客户端1。

在本实施例中,该客户端1与静态服务器群2的通信交互采用webservice接口和json格式的数据,与动态服务器群3的通信交互使用mqttv3.1之后自带的tls/ssl加密功能,数据格式为自定义的二进制协议。

综上所述,上述系统和方法在满足了应用需求的同时保证了协议的简单易实现和流量消耗小等适用于移动互联网的优势,且同时提高了系统的可扩展性。

以上所述仅是本发明的优选实施方式,并不用于限制本发明,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1