本发明专利技术提出一种基于STOMP协议的通信方法和装置,该方法包括根据待转发消息确定目的客户端的标识,获取集群中节点服务器的个数,在个数小于或等于预设阈值时,基于第一队列将待转发消息发送到集群中全部的节点服务器中,其中,第一队列为用于广播基于STOMP协议的消息的队列;在个数大于预设阈值时,根据预存的对应关系表确定与标识对应的节点服务器的编号;基于与编号对应的第二队列将待转发消息发送至与编号对应的节点服务器,其中,第二队列为用于单播基于STOMP协议的消息的队列,以使节点服务器根据目的客户端的标识将待转发消息转发至目的客户端。通过本发明专利技术能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。
【技术实现步骤摘要】
基于STOMP协议的通信方法和装置
本专利技术涉及通信
,尤其涉及一种基于STOMP协议的通信方法和装置。
技术介绍
STOMP(SimpleTextOrientatedMessagingProtocol,简单(流)文本定向消息协议)协议是一种长连接全双工通信领域的一种通信协议,该协议简洁、易实现,但是,该协议在实现会对每一个订阅都单独创建队列,例如,用户在登录客户端后,可以建立链路连接,在该链路连接上进行了10次订阅(例如,可以包括topic、queue),那么在对应的STOMP协议实现侧,即基于STOMP协议的消息代理,则需要创建10个队列。这种方式下,每个长连接需创建较多队列,但是大部分队列处于空等状态,而通信系统仍然对这些队列进行监听和处理,通信链路所占用的内存和CPU较多,通信系统不够稳定。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的一个目的在于提出一种基于STOMP协议的通信方法,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。本专利技术的另一个目的在于提出一种基于STOMP协议的通信装置。为达到上述目的,本专利技术第一方面实施例提出的基于STOMP协议的通信方法,包括:在接收到客户端发送的待转发消息时,根据所述待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数,以及判断所述个数是否小于或者等于预设阈值;在所述个数小于或者等于所述预设阈值时,基于第一队列将所述待转发消息发送到所述服务器集群中全部的节点服务器中,其中,所述第一队列为用于广播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端;在所述个数大于所述预设阈值时,根据预存的对应关系表确定与所述标识对应的节点服务器的编号;基于与所述编号对应的第二队列将所述待转发消息发送至与所述编号对应的节点服务器,其中,所述第二队列为用于单播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端。在本专利技术的一个实施例中,在所述接收到客户端发送的待转发消息之前,还包括:建立所述集群服务器中的多个节点服务器和多个客户端之间的链路连接;记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号。在本专利技术的一个实施例中,还包括:获取所述目的客户端的标识,并将所述目的客户端的标识和与所述目的客户端所连接的多个节点服务器中,每个节点服务器的编号生成对应关系表;对所述对应关系表进行保存。在本专利技术的一个实施例中,在所述接收到客户端发送的待转发消息之前,还包括:建立所述每个节点服务器与基于STOMP协议的消息代理之间的链路连接;在建立所述链路连接之后,基于所述链路连接生成所述第一队列,并基于所述链路连接生成与每个编号对应的第二队列。在本专利技术的一个实施例中,所述链路连接为长连接。本专利技术第一方面实施例提出的基于STOMP协议的通信方法,通过根据待转发消息确定目的客户端的标识,并判断集群中节点服务器的个数是否小于或者等于预设阈值,若是,则基于用于广播基于STOMP协议的消息的队列将待转发消息发送到服务器集群中全部的节点服务器中,若否,则根据预存的对应关系表确定与标识对应的节点服务器的编号,基于与编号对应的用于单播基于STOMP协议的消息的队列将待转发消息发送至与编号对应的节点服务器中,由于在节点服务器个数大于预设阈值时,不需要广播基于STOMP协议的消息,因此,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。为达到上述目的,本专利技术第二方面实施例提出的基于STOMP协议的通信装置,包括:第一获取模块,用于在接收到客户端发送的待转发消息时,根据所述待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数;判断模块,用于判断所述个数是否小于或者等于预设阈值;第一发送模块,用于在所述个数小于或者等于所述预设阈值时,基于第一队列将所述待转发消息发送到所述服务器集群中全部的节点服务器中,其中,所述第一队列为用于广播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端;确定模块,用于在所述个数大于所述预设阈值时,根据预存的对应关系表确定与所述标识对应的节点服务器的编号;第二发送模块,用于基于与所述编号对应的第二队列将所述待转发消息发送至与所述编号对应的节点服务器,其中,所述第二队列为用于单播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端。在本专利技术的一个实施例中,还包括:第一建立模块,用于建立所述集群服务器中的多个节点服务器和多个客户端之间的链路连接;记录模块,用于记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号。在本专利技术的一个实施例中,还包括:第二获取模块,用于获取所述目的客户端的标识;第一生成模块,用于将所述目的客户端的标识和与所述目的客户端所连接的多个节点服务器中,每个节点服务器的编号生成对应关系表;保存模块,用于对所述对应关系表进行保存。在本专利技术的一个实施例中,还包括:第二建立模块,用于建立所述每个节点服务器与基于STOMP协议的消息代理之间的链路连接;第二生成模块,用于在建立所述链路连接之后,基于所述链路连接生成所述第一队列,并基于所述链路连接生成与每个编号对应的第二队列。在本专利技术的一个实施例中,所述链路连接为长连接。本专利技术第二方面实施例提出的基于STOMP协议的通信装置,通过根据待转发消息确定目的客户端的标识,并判断集群中节点服务器的个数是否小于或者等于预设阈值,若是,则基于用于广播基于STOMP协议的消息的队列将待转发消息发送到服务器集群中全部的节点服务器中,若否,则根据预存的对应关系表确定与标识对应的节点服务器的编号,基于与编号对应的用于单播基于STOMP协议的消息的队列将待转发消息发送至与编号对应的节点服务器中,由于在节点服务器个数大于预设阈值时,不需要广播基于STOMP协议的消息,因此,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1是本专利技术一实施例提出的基于STOMP协议的通信方法的流程示意图;图2为相关技术中消息代理转发消息的框架示意图;图3为本专利技术实施例中消息代理转发消息的框架示意图;图4是本专利技术另一实施例提出的基于STOMP协议的通信方法的流程示意图;图5是本专利技术一实施例提出的基于STOMP协议的通信装置的结构示意图;图6是本专利技术另一实施例提出的基于STOMP协议的通信装置的结构示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。相反,本专利技术的实施例包括落入所附加本文档来自技高网...
【技术保护点】
一种基于STOMP协议的通信方法,其特征在于,包括以下步骤:在接收到客户端发送的待转发消息时,根据所述待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数,以及判断所述个数是否小于或者等于预设阈值;在所述个数小于或者等于所述预设阈值时,基于第一队列将所述待转发消息发送到所述服务器集群中全部的节点服务器中,其中,所述第一队列为用于广播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端;在所述个数大于所述预设阈值时,根据预存的对应关系表确定与所述标识对应的节点服务器的编号;基于与所述编号对应的第二队列将所述待转发消息发送至与所述编号对应的节点服务器,其中,所述第二队列为用于单播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端。
【技术特征摘要】
1.一种基于STOMP协议的通信方法,其特征在于,包括以下步骤:在接收到客户端发送的待转发消息时,根据所述待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数,以及判断所述个数是否小于或者等于预设阈值;在所述个数小于或者等于所述预设阈值时,基于第一队列将所述待转发消息发送到所述服务器集群中全部的节点服务器中,其中,所述第一队列为用于广播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端;在所述个数大于所述预设阈值时,根据预存的对应关系表确定与所述标识对应的节点服务器的编号;基于与所述编号对应的第二队列将所述待转发消息发送至与所述编号对应的节点服务器,其中,所述第二队列为用于单播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端。2.如权利要求1所述的基于STOMP协议的通信方法,其特征在于,在所述接收到客户端发送的待转发消息之前,还包括:建立所述集群服务器中的多个节点服务器和多个客户端之间的链路连接;记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号。3.如权利要求2所述的基于STOMP协议的通信方法,其特征在于,还包括:获取所述目的客户端的标识,并将所述目的客户端的标识和与所述目的客户端所连接的多个节点服务器中,每个节点服务器的编号生成对应关系表;对所述对应关系表进行保存。4.如权利要求1所述的基于STOMP协议的通信方法,其特征在于,在所述接收到客户端发送的待转发消息之前,还包括:建立所述每个节点服务器与基于STOMP协议的消息代理之间的链路连接;在建立所述链路连接之后,基于所述链路连接生成所述第一队列,并基于所述链路连接生成与每个编号对应的第二队列。5.如权利要求2或4所述的基于STOMP协议的通信方法,其特征在于,所述链路连接为长连接。6.一种基于STOMP协议的通信装置,其特征在于,包括...
【专利技术属性】
技术研发人员:赵研,
申请(专利权)人:东软集团股份有限公司,
类型:发明
国别省市:辽宁,21
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。