1.一种基于mqtt协议的消息分发方法,应用于服务器集群的一服务器,其特征在于,该方法包括:接收步骤:接收所述服务器集群基于mqtt协议广播的消息发送请求;
解析步骤:解析所述消息发送请求中携带的待发送消息,根据预设的消息属性信息与主题之间的映射关系,确定与所述待发送消息的属性信息对应的主题;
第一判断步骤:判断所述主题是否存在第一预设类型字段,以确定所述待发送消息是否为P2P消息;
第二判断步骤:当判断所述待发送消息为P2P消息时,判断所述主题是否存在第二预设类型字段,以判断与所述第二预设类型字段对应的客户端是否订阅所述主题;及发送步骤:当判断所述主题存在所述第二预设类型字段时,则将与所述主题对应的所述待发送消息发送至与所述第二预设类型字段对应的客户端。
2.如权利要求1所述的基于mqtt的消息分发方法,其特征在于,所述消息发送请求是由负载均衡设备基于预设的负载均衡规则分配的。
3.如权利要求2所述的基于mqtt的消息分发方法,其特征在于,所述负载均衡规则为:根据所述服务器集群中的各服务器的实时负载情况将所述消息发送请求优先分配给负载最小的服务器;或根据所述服务器集群中的各服务器的排序,按照轮询的方式分配所述消息发送请求。
4.如权利要求1所述的基于mqtt的消息分发方法,其特征在于,所述发送步骤还包括:判断与所述第二预设类型字段对应的客户端是否在线;
若与所述第二预设类型字段对应的客户端在线,则将所述待发送消息发送至所述客户端;及若与所述第二预设类型字段对应的客户端不在线,则将所述待发送消息保存至与该客户端对应的服务器的离线消息队列。
5.如权利要求4所述的基于mqtt的消息分发方法,其特征在于,所述发送步骤还包括:侦测所述客户端的连接请求,当侦测到所述客户端在线时,将所述离线消息队列中的所述待发送消息发送至所述客户端。
6.一种服务器,其特征在于,所述服务器包括存储器和处理器,所述存储器上存储有消息分发程序,所述消息分发程序被所述处理器执行时实现如下步骤:接收步骤:接收所述服务器集群基于mqtt协议广播的消息发送请求;
解析步骤:解析所述消息发送请求中携带的待发送消息,根据预设的消息属性信息与主题之间的映射关系,确定与所述待发送消息的属性信息对应的主题;
第一判断步骤:判断所述主题是否存在第一预设类型字段,以确定所述待发送消息是否为P2P消息;
第二判断步骤:当判断所述待发送消息为P2P消息时,判断所述主题是否存在第二预设类型字段,以判断与所述第二预设类型字段对应的客户端是否订阅所述主题;及发送步骤:当判断所述主题存在所述第二预设类型字段时,则将与所述主题对应的所述待发送消息发送至与所述第二预设类型字段对应的客户端。
7.如权利要求6所述的服务器,其特征在于,所述消息发送请求是由负载均衡设备基于预设的负载均衡规则分配的。
8.如权利要求7所述的服务器,其特征在于,所述负载均衡规则为:根据所述服务器集群中的各服务器的实时负载情况将所述消息发送请求优先分配给负载最小的服务器;或根据所述服务器集群中的各服务器的排序,按照轮询的方式分配所述消息发送请求。
9.如权利要求6-8中任一项所述的服务器,其特征在于,所述处理器运行所述消息分发程序,还执行:判断与所述第二预设类型字段对应的客户端是否在线;
若与所述第二预设类型字段对应的客户端在线,则将所述待发送消息发送至所述客户端;及若与所述第二预设类型字段对应的客户端不在线,则将所述待发送消息保存至与该客户端对应的服务器的离线消息队列。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有消息分发程序,所述消息分发程序可被一个或者多个处理器执行,以实现如权利要求1-5中任一项所述的消息分发方法的步骤。