本发明涉及通信技术领域,尤其涉及一种消息分发系统。
背景技术:
随着移动终端各种应用程序的兴起,对消息进行有效地分发具有重要意义。
由于目前移动终端app的用户量逐渐增大,现有的消息分发系统在对消息的分发速度、分发准确性方面并不能满足用户需求。
技术实现要素:
本发明旨在提供一种消息分发系统,能够提高消息的分发速度和准确性,提高用户体验。
为达到上述目的,本发明采用的技术方案如下:
一种消息分发系统,包括:服务器,交换机,消息队列,客户端;
所述服务器用于发布目标消息,所述目标消息中包括所述客户端的客户标识;所述交换机用于将所述目标消息按照预定路由规则传输至相应的所述消息队列;所述消息队列用于接收由所述交换机传输的所述目标消息,并根据所述客户标识,将所述目标消息传输至相应的客户端。
进一步地,还包括:消息数据库;所述服务器还用于将发布的目标消息发送给所述消息数据库;所述消息数据库用于存储所述目标消息。
进一步地,所述预定路由规则为预先设置的路由关键字。
进一步地,所述服务器中还设有至少一个虚拟主机,用于对不同客户端进行权限分离。
优选地,所述服务器的通信协议包括http协议。
本发明实施例提供的消息分发系统,能够提高消息的分发速度和准确性,提高用户体验。
附图说明
图1为本发明实施例的系统结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。
图1为本发明实施例的系统结构图,包括:服务器,交换机,消息队列,客户端;所述服务器用于发布目标消息,所述目标消息中包括所述客户端的客户标识;所述交换机用于将所述目标消息按照预定路由规则传输至相应的所述消息队列;所述消息队列用于接收由所述交换机传输的所述目标消息,并根据所述客户标识,将所述目标消息传输至相应的客户端。
本实施例中,每个目标消息都会被投入到一个或多个消息队列。交换机和消息队列之间会按照预定路由规则绑定起来。在客户端的每一个网络连接中,可以建立多个消息通道,每个消息通道代表一个会话任务。
本系统在使用过程中,客户端连接到消息队列,打开一个消息通道;服务器声明一个交换机,并设置相关属性;服务器声明一个消息队列,并设置相关属性;服务器使用预定路由规则,在交换机和消息队列之间建立好绑定关系;服务器投递消息到交换机;交换机接收到消息后,就根据上述路由规则和绑定关系,进行消息路由,将消息投递到一个或多个队列里。
本实施例中,还包括:消息数据库;所述服务器还用于将发布的目标消息发送给所述消息数据库;所述消息数据库用于存储所述目标消息。
本实施例中,所述预定路由规则为预先设置的路由关键字。
本实施例中,所述服务器中还设有至少一个虚拟主机,用于对不同客户端进行权限分离。
本实施例中的服务器的通信协议包括自定义fjsonn协议和http协议。fjsonn协议是基于开源协议json为主要载体,在此机构上面,加上f头和字节大小组成,能实现快速的tcp通讯,结构清晰,通用性强。http协议(hypertexttransferprotocol,超文本传输协议)是用于从万维网服务器传输超文本到本地浏览器的传送协议。http基于tcp/ip通信协议来传递数据(html文件,图片文件,查询结果等)。http是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
在消息订阅模式中,服务器称为消息发布者,消息数据库称为消息主题,客户端称为订阅者。多个消息发布者将消息发送到消息主题中,系统将这些消息传递给多个订阅者。
发布订阅模式的特点是每个消息可以有多个订阅者,消息发布者和订阅者之间有时间上的依赖性。针对某个消息主题的订阅者,必须创建一个订阅者之后,才能消费发布者的消息。为了消费消息,订阅者必须保持运行的状态。
本系统的开发过程如下:
1、接入订阅接口;
2、生成客户端的客户标识;
3、服务器发布消息给客户端;
4、客户端接收消息;
5、客户端push消息给服务器。
php在服务端web服务开发中有着广泛的应用基础,语言灵活,部署方便,开发效率高;redis是流行的内存存储服务程序,这里用redis来提供cache功能;mysql作为优秀的开源关系型数据库,成本低廉,使用方便,这里用它来做数据的持久化存储。
上述开发过程需要完成以下关键任务:
1、在客户端和服务器端建立连接。
2、服务器(消息生产者)的消息发送目标或者说客户端(消息消费者)的消息来源。
3、操作消息的接口。可以通过session函数来创建生产者、消费者、消息等。session提供了事务的功能。当需要使用session发送/接收多个消息时,可以将这些发送/接收动作放到一个事务中。
4、消息生产者。消息生产者由session创建,并用于将消息发送到相应的目标。
5、消息消费者。消息消费者由session创建,用于接收被发送到相应目标的消息。
6、消息监听器。如果注册了消息监听器,一旦消息到达,能立即监听到消息。
7、连接工厂。创建客户端和服务器端连接对象的工厂,针对不同的消息模型,采用不同的连接方式。
本发明实施例提供的消息分发系统,通过对移动终端等平台分发消息,并调度所有平台上报的信息,根据信息运算,再分发给对应平台,能够提高消息的分发速度和准确性,提高用户体验。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。