CN115118772A - 一种消息通信的***及方法 - Google Patents
一种消息通信的***及方法 Download PDFInfo
- Publication number
- CN115118772A CN115118772A CN202210705802.7A CN202210705802A CN115118772A CN 115118772 A CN115118772 A CN 115118772A CN 202210705802 A CN202210705802 A CN 202210705802A CN 115118772 A CN115118772 A CN 115118772A
- Authority
- CN
- China
- Prior art keywords
- node
- message
- target
- bus
- session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种消息通信的***及方法,该方法包括:通过第一节点响应向第二节点发送事件消息的指令,执行本地事件工作,并构建包含源节点id、由消息总线向第一节点分配的源节点会话id、目标节点id以及由消息总线向第二节点分配的目标节点会话id的路由四元组,将执行事件工作的结果与路由四元组组合作为目标消息,消息总线根据路由四元组的目标节点id以及目标节点会话id,将目标消息转发至第二节点。由此可见,通过消息总线主导每个节点的通信,使得每个节点仅通过消息总线路由即可直接与目标会话的节点进行消息通信,大大减少了层次化的节点的数量,提高了节点间的通信效率。
Description
技术领域
本申请涉及信息通信领域,更具体的说,是涉及一种消息通信的***及方法。
背景技术
随着信息技术的不断发展,线上信息的交流遍布日常生活,人们不断追求高性能的通信设备,近年来,在通信设备上的配置参数越来越高,通信设备的性能也不断优化,设备内部的信息通信速度也不断提高,消息进行通信的模式也具有层次化,满足人们对信息通信的优质体验。
其中,目前设备内部的消息通信模式如图1所示,通信***中有多个节点,两个节点中一方作为服务端节点进行端口监听,另一方作为客户端节点连接到端口,因此两个节点之间就建立了全双工通信。示例如Studio节点作为服务端节点,Engine节点和Assist节点均作为客户端节点连接到Studio节点,Assist节点作为服务端节点,那么PluginA节点则作为客户端节点连接到Assist节点。
然而,当通信***的层次较多,网络拓扑复杂,可能导致实现简单的功能反而需要经过多个节点才能实现两个节点通信,造成通信效率低下,因此需要改变通信***的拓扑结构,以提高节点间的通信效率。
发明内容
鉴于上述问题,提出了本申请以便提供一种消息通信的***及方法,以提高节点间的通信效率。
为了实现上述目的,现提出具体方案如下:
一种消息通信的***,包括:多个节点和消息总线,其中,每个节点与所述消息总线通信相连,每个节点均有与之对应的节点id,每个节点均存储了各节点对应的节点id以及所述消息总线的总线id,将消息发送的节点作为第一节点,将接收消息的每个节点作为第二节点,所述消息总线向消息发送的节点分配源节点会话id,所述消息总线向接收消息的每个节点分配与每个接收消息的节点对应的目标节点会话id;
所述第一节点,用于响应仅向单个第二节点发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果,以本地节点的节点id作为源节点id,所述第二节点的节点id作为目标节点id,构建包含所述源节点id、所述源节点会话id、所述目标节点id以及所述目标节点会话id的路由四元组,将所述结果与所述路由四元组组合作为第一目标消息,向所述消息总线发送所述第一目标消息;
所述消息总线,用于根据所述第一节点发送的第一目标消息中的路由四元组的,目标节点id以及目标节点会话id,将所述第一目标消息发送至所述第二节点。
可选的,所述第一节点在向所述消息总线发送所述第一目标消息之前,所述第一节点还用于:
通过消息体加密的方式对所述第一目标消息进行加密,得到加密后的第一目标消息,以供所述消息总线在将所述加密后的第一目标消息发送至第二节点后,第二节点以与所述消息体加密对应的消息体解密的方式,对所述加密后的第一目标消息进行解密。
可选的,所述消息总线向消息发送的节点分配源节点会话id,包括:
所述消息总线从预先存储的id值分配记录中确定最近一次分配的id值;
所述消息总线将所述最近一次分配的id值加1,若所得到的结果超过4个字节整型,则将1作为待分配源节点会话id值,若所得到的结果不超过4个字节整型,所得到的结果作为待分配源节点会话id值;
所述消息总线判断所述待分配源节点会话id值是否与所述预先存储的id值分配记录中的id值匹配;
若是,所述消息总线将所述待分配源节点会话id值作为新的最近一次分配的id值,返回执行所述消息总线将所述最近一次分配的id值加1的步骤;
若否,所述消息总线将所述待分配源节点会话id值作为源节点会话id;
所述消息总线将所述源节点会话id分配至消息发送的节点。
可选的,所述消息总线向接收消息的每个节点分配与每个接收消息的节点对应的目标节点会话id,包括:
所述消息总线对于每个接收消息的节点,从预先存储的id值分配记录中确定最近一次分配的id值;
所述消息总线将所述最近一次分配的id值加1,若所得到的结果超过4个字节整型,则将1作为待分配目标节点会话id值,若所得到的结果不超过4个字节整型,所得到的结果作为待分配目标节点会话id值;
所述消息总线判断所述待分配目标节点会话id值是否与所述预先存储的id值分配记录中的id值匹配;
若是,所述消息总线将所述待分配目标节点会话id值作为新的最近一次分配的id值,返回执行所述消息总线将所述最近一次分配的id值加1的步骤;
若否,所述消息总线将所述待分配目标节点会话id值作为目标节点会话id;
所述消息总线将所述目标节点会话id分配至所述接收消息的节点。
可选的,所述事件工作为人机交互的操作;
所述第一节点响应仅向单个第二节点发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果,包括:
所述第一节点基于所述执行所述人机交互的操作的指令,激活人机交互界面;
所述第一节点在所述人机交互界面上,响应用户执行事件的操作,确定所执行事件工作的结果。
可选的,所述事件消息为请求类型的事件消息;
所述消息总线还用于:
将所述第一目标消息的消息类型设置为请求类型,并将所述请求类型的第一目标消息发送至所述第二节点;
所述第二节点,用于接收到所述消息总线通知执行应答事件工作的指令,执行本地节点的应答事件工作,并确定所执行应答事件工作的应答结果,将所述路由四元组中的源节点id的值与目标节点id的值互换,以及将所述路由四元组中的源节点会话id的值与目标节点会话id的值互换,得到新的路由四元组,将所述新的路由四元组与所述应答结果组合作为应答消息,并将所述应答消息发送至所述消息总线,以供所述消息总线根据所述应答消息中的路由四元组的,目标节点id以及目标节点会话id,将所述应答消息发送至所述第一节点。
可选的,所述第一节点还用于:
响应向至少两个第二节点发送订阅推送类型的事件消息的指令,执行本地节点的推送事件工作,并确定所执行推送事件工作的结果为推送消息,以本地节点的节点id作为源节点id,以0作为总线会话id,构建包含所述源节点id、所述源节点会话id、所述消息总线的总线id以及所述总线会话id的总线路由四元组,将所述推送消息与所述总线路由四元组组合作为第二目标消息,向所述消息总线发送所述第二目标消息;
所述消息总线,还用于:
将所述第二目标消息的消息类型设置为推送类型,并将所述推送类型的第二目标消息中的推送消息,发送至预先订阅了所述第一节点的推送消息的各第二节点。
一种消息通信的方法,应用于消息总线,所述消息总线与多个节点通信相连,每个节点均有与之对应的节点id,每个节点均存储了各节点对应的节点id以及所述消息总线的总线id,将消息发送的节点作为第一节点,将接收消息的每个节点作为第二节点,向消息发送的节点分配源节点会话id,向接收消息的每个节点分配与每个接收消息的节点对应的目标节点会话id,该方法包括:
接收所述第一节点发送的第一目标消息,所述第一目标消息由所述第一节点响应所述第一节点仅向单个第二节点发送事件消息的指令,执行所述第一节点的事件工作的结果,与路由四元组组成,所述路由四元组是以所述第一节点的节点id作为源节点id,所述第二节点的节点id作为目标节点id,以及所述源节点会话id和所述目标节点id构建得到的;
根据所述第一目标消息中的路由四元组的,目标节点id以及目标节点会话id,将所述第一目标消息发送至所述第二节点。
可选的,所述事件消息为请求类型的事件消息;
该方法还包括:
将所述第一目标消息的消息类型设置为请求类型,并将所述请求类型的第一目标消息发送至所述第二节点,以供所述第二节点返回应答消息,所述应答消息由所述第二节点执行所述第二节点的应答事件工作的结果,与新的路由四元组组成,所述新的路由四元组是由所述第一节点获取的路由四元组中,源节点id的值与目标节点id的值互换,源节点会话id的值与目标节点会话id的值互换,所得到的;
根据所述应答消息中的路由四元组中的,目标节点id以及目标节点会话id,将所述应答消息发送至所述第一节点。
可选的,该方法还包括:
接收到所述第一节点发送的第二目标消息,所述第二目标消息由所述第一节点响应所述第一节点向至少两个第二节点发送订阅推送类型的事件消息的指令,执行所述第一节点的推送事件工作得到的推送消息,与总线路由四元组组成,所述总线路由四元组是以所述第一节点的节点id作为源节点id,以0作为总线会话id,以及所述源节点会话id和所述消息总线的总线id构建得到的;
将所述第二目标消息的消息类型设置为推送类型,并将所述推送类型的第二目标消息中的推送消息,发送至预先订阅了所述第一节点的推送消息的各第二节点。
借由上述技术方案,本申请通过第一节点响应向第二节点发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果,以本地节点的节点id作为源节点id,第二节点的节点id作为目标节点id,构建包含源节点id、源节点会话id、目标节点id以及目标节点会话id的路由四元组,将所述结果与路由四元组组合作为第一目标消息,向消息总线发送第一目标消息,消息总线根据第一节点发送的第一目标消息中的路由四元组的,目标节点id以及目标节点会话id,将第一目标消息发送至所述第二节点。由此可见,通过通信***中的消息总线主导每个节点的通信,使得每个节点仅通过消息总线路由即可直接与目标会话的节点进行消息通信,大大减少了层次化的节点的数量,提高了节点间的通信效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为目前设备内部的消息通信模式的一种节点通信图;
图2为本申请实施例提供的实现消息通信的一种***架构图;
图3为本申请实施例提供的实现消息通信方法的一种可选信令流程;
图4为本申请实施例提供的实现请求类型消息的消息通信的一种可选信令流程;
图5为本申请实施例提供的实现推送类型消息的消息通信的一种可选信令流程。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的实现消息通信的一种可选***架构,如图1所示,该***架构可以包括:
消息总线10、第一节点20和多个第二节点30,其中,第一节点20可以表示消息发送的节点,第二节点30可以表示接收消息的节点,所有节点均与消息总线10通信相连,每个节点均有与之对应的节点id,每个节点均可以存储各节点对应的节点id,以及消息总线10的总线id。
具体的,每个节点的节点id和消息总线10的总线id均可以是在创建消息通信***时预先设置的。
其中,消息总线10的本地内存中存储了多个节点会话id,以分配给消息发送的节点和每个接收消息的节点。消息总线10向消息发送的节点分配源节点会话id,消息总线10向接收消息的每个节点分配与每个接收消息的节点对应的目标节点会话id。
具体的,消息总线10向消息发送的节点分配源节点会话id的过程,可以包括如下步骤:
S11、消息总线10从预先存储的id值分配记录中确定最近一次分配的id值。
S12、消息总线10将所述最近一次分配的id值加1,判断所得到的结果是否超过4个字节整型,若是,则执行S13,若否,则执行S14。
具体的,4个字节整型可以表示节点会话id值字节的最大长度。
S13、消息总线10将1作为待分配源节点会话id值。
具体的,节点会话id值由于加1而溢出字节的最大长度时,可以将1作为待分配源节点会话id值。
S14、消息总线10将所得到的结果作为待分配源节点会话id值。
S15、消息总线10判断所述待分配源节点会话id值是否与所述预先存储的id值分配记录中的id值匹配,若是,则执行S16,若否,则执行S17。
可以理解的是,由于消息总线10分配每个节点的节点会话id值均不同,因此需要在分配时检查有没有分配到已分配的id值。
S16、消息总线10将所述待分配源节点会话id值作为新的最近一次分配的id值,返回执行S12。
S17、消息总线10将所述待分配源节点会话id值作为源节点会话id。
S18、消息总线10将所述源节点会话id分配至消息发送的节点。
消息总线10向接收消息的每个节点分配与每个接收消息的节点对应的目标节点会话id的过程,可以包括如下步骤:
S21、消息总线10对于每个接收消息的节点,从预先存储的id值分配记录中确定最近一次分配的id值。
S22、消息总线10将所述最近一次分配的id值加1,判断所得到的结果是否超过4个字节整型,若是,则执行S23,若否,则执行S24。
具体的,4个字节整型可以表示节点会话id值字节的最大长度。
S23、消息总线10将1作为待分配目标节点会话id值。
具体的,节点会话id值由于加1而溢出字节的最大长度时,可以将1作为待分配目标节点会话id值。
S24、消息总线10将所得到的结果作为待分配目标节点会话id值。
S25、消息总线10判断所述待分配目标节点会话id值是否与所述预先存储的id值分配记录中的id值匹配,若是,则执行S16,若否,则执行S17。
可以理解的是,由于消息总线10分配每个节点的节点会话id值均不同,因此需要在分配时检查有没有分配到已分配的id值。
S26、消息总线10将所述待分配目标节点会话id值作为新的最近一次分配的id值,返回执行S22。
S27、消息总线10将所述待分配目标节点会话id值作为目标节点会话id。
S28、消息总线10将所述目标节点会话id分配至所述接收消息的节点。
第一节点20,可以响应仅向单个第二节点30发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果,以本地节点的节点id作为源节点id,第二节点30的节点id作为目标节点id,构建包含源节点id、源节点会话id、目标节点id以及目标节点会话id的路由四元组,将所述结果与所述路由四元组组合作为第一目标消息,向所述消息总线10发送所述第一目标消息。
消息总线10,可以根据第一目标消息中的路由四元组的,目标节点id以及目标节点会话id,将第一目标消息发送至第二节点30。
基于图1所示的***架构,图2示出了本申请实施例提供的实现消息通信方法的一种可选信令流程,参照图2,该流程可以包括:
步骤S101、第一节点20响应仅向单个第二节点30发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果。
具体的,第一节点20在接收到消息总线10通知执行事件工作的指令后,执行本地节点的事件工作,事件工作的执行类型可以分为独立完成的执行类型,和交互完成的执行类型。
步骤S102、第一节点20以本地节点的节点id作为源节点id,第二节点30的节点id作为目标节点id,构建包含源节点id、源节点会话id、目标节点id以及目标节点会话id的路由四元组。
其中,第二节点30的节点id为第一节点20在获取消息总线10发送的将向第二节点30分配的目标节点会话id后确定的。
具体的,路由四元组中的源节点id和源节点会话id可以作为发起当前会话的节点的唯一标识,路由四元组中的目标节点id以及目标节点会话id可以作为接收消息的节点的唯一标识。
步骤S103、第一节点20将所述结果与所述路由四元组组合作为第一目标消息。
具体的,可以从第一目标消息的消息头中解析出路由四元组。
步骤S104、第一节点20向消息总线10发送所述第一目标消息。
步骤S105、消息总线10根据所述第一目标消息中的路由四元组的目标节点id以及目标节点会话id,将所述第一目标消息发送至第二节点30。
可以理解的是,消息总线10可以进行节点间路由,解析第一目标消息的消息头得到的路由四元组中包含接收消息的节点的唯一标识,在接收到第一目标消息后,可以路由四元组中的接收消息的节点的唯一标识,将第一目标消息发送至第二节点30。
本实施例提供的消息通信的方法,通过第一节点20响应仅向单个第二节点30发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果,以本地节点的节点id作为源节点id,第二节点30的节点id作为目标节点id,构建包含源节点id、源节点会话id、目标节点id以及目标节点会话id的路由四元组,将所述结果与路由四元组组合作为第一目标消息,向消息总线10发送第一目标消息,消息总线10根据第一节点20发送的第一目标消息中的路由四元组的,目标节点id以及目标节点会话id,将第一目标消息发送至所述第二节点30。由此可见,通过通信***中的消息总线主导每个节点的通信,使得每个节点仅通过消息总线路由即可直接与目标会话的节点进行消息通信,大大减少了层次化的节点的数量,提高了节点间的通信效率。
在本申请的一些实施例中,考虑到节点通信的安全性,每个节点在生成通信消息后,需要对通信消息进行加密,基于此,本申请实施例提供了一种通信消息加密的方法,本实施例在上述实施例提到的第一节点20在向消息总线10发送第一目标消息之前,可以进一步增加对第一目标消息加密的过程,具体的,该过程可以包括:
通过消息体加密的方式对所述第一目标消息进行加密,得到加密后的第一目标消息,以供所述消息总线在将所述加密后的第一目标消息发送至第二节点后,第二节点以与所述消息体加密对应的消息体解密的方式,对所述加密后的第一目标消息进行解密。
可以理解的是,在第一节点20向消息总线10发送消息的过程中,为确保消息传输的安全性,消息总线10需要验证该传输的消息是否由第一节点20发起,因此第二节点30在接收到消息总线10发送的第一目标消息后,可以通过与消息体加密方式对应的消息体解密的方式,对第一目标消息进行解密,若成功解密则说明消息传输过程安全,若解密失败则说明第一目标消息很可能被篡改过,那么第二节点30可以删除该可能被篡改过的第一目标消息,并反馈消息总线10重新向第一节点20发起指令。
本实施例提供的消息通信的方法,通过第一节点20在生成第一目标消息时对第一目标消息进行加密,有效地保证了节点通信的安全性。
本申请的一些实施例中,事件工作可以为人机交互的操作,对上述实施例提到的第一节点20响应仅向单个第二节点30发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果的过程进行介绍,该过程可以包括:
S1、第一节点20基于所述执行所述人机交互的操作的指令,激活人机交互界面。
示例如,第一节点20可以为ChromeNaticeMsg插件,该节点事件工作的方式是人机交互的操作,即需要接收用户的点击后获取用户所点击选择的元素,当ChromeNaticeMsg插件接收到消息总线10通知执行事件工作的指令时,激活能够接受用户点击的人机交互界面。
S2、第一节点20在所述人机交互界面上,响应用户执行事件的操作,确定所执行事件工作的结果。
示例如,当用户在人机交互界面上点击选择元素后,ChromeNaticeMsg插件将所选择的元素确定为本次事件工作的结果。
考虑到第一节点20和第二节点30可能基于请求类型的消息发起会话,那么需要第二节点30对此作出应答,基于此,当事件消息为请求类型的事件消息时,本申请实施例提供了另一种消息通信的方法,结合图4对该方法进行介绍,该方法可以包括:
步骤S201、第一节点20响应仅向单个第二节点30发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果。
步骤S202、第一节点20以本地节点的节点id作为源节点id,第二节点30的节点id作为目标节点id,构建包含源节点id、源节点会话id、目标节点id以及目标节点会话id的路由四元组。
步骤S203、第一节点20将所述结果与所述路由四元组组合作为第一目标消息。
步骤S204、第一节点20向消息总线10发送所述第一目标消息。
上述步骤S201-S204与前述实施例步骤S101-S104一一对应,详细参照前述介绍,此处不再赘述。
步骤S205、消息总线10将所述第一目标消息的消息类型设置为请求类型。
具体的,将第一目标消息的消息类型设置为请求类型可以是,基于响应第一节点仅向单个第二节点发送请求类型的事件消息的指令而设置的。
步骤S206、消息总线10根据所述第一目标消息中的路由四元组的目标节点id以及目标节点会话id,将所述请求类型的第一目标消息发送至第二节点30。
步骤S207、第二节点30接收到消息总线10通知执行应答事件工作的指令,执行本地节点的应答事件工作,并确定所执行应答事件工作的应答结果。
具体的,第二节点30所接收到的通知执行应答事件工作的指令,可以是消息总线10基于第一目标消息生成并发送的,第二节点30在接收到消息总线10通知执行应答事件工作的指令后,执行本地节点的应答事件工作,应答事件工作的执行类型可以分为独立完成的执行类型,和交互完成的执行类型。
步骤S208、第二节点30将路由四元组中的源节点id的值与目标节点id的值互换,以及将路由四元组中的源节点会话id的值与目标节点会话id的值互换,得到新的路由四元组。
可以理解的是,当第二节点30需要向第一节点20发送通信消息时,第二节点30可以作为会话发起方,第一节点20可以作为消息接收方,那么可以将路由四元组中的源节点id的值与目标节点id的值互换,以及将路由四元组中的源节点会话id的值与目标节点会话id的值互换,得到新的路由四元组。
步骤S209、第二节点30将新的路由四元组与应答结果组合作为应答消息。
步骤S210、第二节点30将应答消息发送至消息总线10。
步骤S211、消息总线10根据应答消息中的路由四元组的,目标节点id以及目标节点会话id,将应答消息发送至第一节点20。
可以理解的是,消息总线10可以进行节点间路由,解析应答消息的消息头得到的路由四元组中包含接收消息的节点的唯一标识,在接收到应答消息后,可以路由四元组中的接收消息的节点的唯一标识,将应答消息发送至第二节点30。
本实施例提供的消息通信的方法,通过消息总线10将请求类型的第一目标消息发送给第二节点30,第二节点30在处理得到应答结果后,将原路由四元组中的源节点id的值和目标节点id的值调转,以及将原路由四元组中的源节点会话id的值与目标节点会话id的值调转,得到新的路由四元组,由此得到应答消息并通过消息总线10发送给第一节点20,实现了请求类型的事件消息的消息通信。
本申请的一些实施例中,考虑到第一节点20可能需要向多个不同的第二节点30推送消息,本申请实施例提供了一种推送消息通信的方法,结合图5,对推送消息通信的方法进行介绍。
步骤S301、第一节点20响应向至少两个第二节点30发送订阅推送类型的事件消息的指令,执行本地节点的推送事件工作,并确定所执行推送事件工作的结果为推送消息。
具体的,第一节点20可以在接收到业务触发的指令后,执行本地节点的推送事件工作。
步骤S302、第一节点20以本地节点的节点id作为源节点id,以0作为总线会话id,构建包含源节点id、源节点会话id、消息总线10的总线id以及总线会话id的总线路由四元组。
可以理解的是,由于第一节点20不是路由到单个第二节点30,因此构建总线路由四元组,总线路由四元组的目标节点为消息总线10,目标节点的节点会话id为消息总线10的会话id,以路由到消息总线10。
步骤S303、第一节点20将推送消息与总线路由四元组组合作为第二目标消息。
具体的,可以从第二目标消息的消息头中解析出总线路由四元组。
步骤S304、第一节点20向消息总线10发送所述第二目标消息。
步骤S305、消息总线10基于第二目标消息中的路由四元组的消息总线10的总线id以及所述总线会话id,将第二目标消息的消息类型设置为推送类型。
可以理解的是,消息总线10从第一节点20发送的第二目标消息解析得到的路由四元组中,能够识别到本地的id和值为0的总线会话id,可以表示第一节点20需要向至少两个第二节点30发送推送消息,因此消息总线10可以将第二目标消息的消息类型设置为推送类型。
进一步地,消息总线10可以对已消息体加密的第二目标消息,以与消息体加密方式对应的消息体解密的方式,进行解密,得到解密后的第二目标消息。
步骤S306、消息总线10将推送类型的第二目标消息中的推送消息,发送至预先订阅了第一节点10的推送消息的各第二节点30。
具体的,消息总线10在将推送消息推送至各第二节点30之前,可以对推送消息以消息体加密的方式进行加密,以供各第二节点30在接收到经加密后的推送消息后,以与消息体加密方式对应的消息体解密的方式,进行解密,得到推送消息。
可以理解的是,由于业务的需要,推送消息的接收方可以是预先绑定了某个固定的节点的,因此当这个固定的节点作为第一节点20发起推送消息时,消息总线10可以查找预先订阅了这个第一节点20的推送消息接收方,进而将推送消息发送至这个作为接收方的第二节点30,以及其它接收方(其它第二节点30)。
本实施例提供的消息通信的方法,通过第一节点20创建路由四元组时将路由目标设置为消息总线,使得消息总线10在解析得到路由四元组时可以获得第一节点20推送消息的信息,从而将第二目标消息中的推送消息推送至各第二节点30,使得每个节点仅通过消息总线路由即可直接与目标会话的节点进行消息通信,大大减少了层次化的节点的数量,提高了节点间的通信效率。
接下来,本申请的一些实施例中,从作为路由核心的消息总线10的角度,对消息通信的方法进行介绍。
具体的,该方法可以包括:
S1、接收第一节点20发送的第一目标消息。
具体的,所述第一目标消息是由第一节点20响应第一节点20仅向单个第二节点30发送事件消息的指令,执行第一节点20的事件工作的结果,与路由四元组组成的。
其中,所述路由四元组是以第一节点20的节点id作为源节点id,第二节点30的节点id作为目标节点id,以及所述源节点会话id和所述目标节点id构建得到的。
S2、根据所述第一目标消息中的路由四元组的,目标节点id以及目标节点会话id,将所述第一目标消息发送至所述第二节点30。
本实施例提供的消息通信的方法,通过接收第一节点20发送的第一目标消息,并根据第一节点20创建的第一目标消息中的路由四元组,将第一目标消息路由至第二节点30。可见,在整个消息通信的过程中通过消息总线10路由的方式,使两个节点进行通信,大大减少了层次化的节点的数量,提高了节点间的通信效率。
本申请的一些实施例中,当事件消息为请求类型的事件消息时,在消息总线10将第一目标消息发送至第二节点30的基础上,还可以包括第二节点30作出应答的过程,具体的,该过程可以包括:
S1、将所述第一目标消息的消息类型设置为请求类型,并将所述请求类型的第一目标消息发送至第二节点30,以供第二节点30返回应答消息。
具体的,所述应答消息是由第二节点30执行第二节点30的应答事件工作的结果,与新的路由四元组组成的。
其中,所述新的路由四元组是由第一节点20获取的路由四元组中,源节点id的值与目标节点id的值互换,源节点会话id的值与目标节点会话id的值互换,所得到的。
S2、根据所述应答消息中的路由四元组中的,目标节点id以及目标节点会话id,将所述应答消息发送至第一节点20。
本实施例提供的消息通信的方法,通过在第二节点30接收到请求类型的第一目标消息时,执行工作并确定应答事件工作的结果,并将原路由四元组中的会话发起方与会话接收方的各对应的id值互换,使得消息总线10能够根据新的路由四元组中的目标节点的信息,将应答消息发送至作为新的消息接收方的第一节点20。
本申请的一些实施例中,考虑到第一节点20可能需要向多个不同的第二节点30推送消息,基于此,本申请实施例提供了一种推送消息通信的方法,具体的,该方法可以包括:
S1、接收第一节点20发送的第二目标消息。
具体的,所述第二目标消息是由第一节点20响应第一节点20向至少两个第二节点30发送订阅推送类型的事件消息的指令,执行第一节点20的推送事件工作得到的推送消息,与总线路由四元组组成的。
其中,所述总线路由四元组是以第一节点20的节点id作为源节点id,以0作为总线会话id,以及所述分配的源节点会话id和所述消息总线的总线id构建得到的。
S2、将所述第二目标消息的消息类型设置为推送类型,并将所述推送类型的第二目标消息中的推送消息,发送至预先订阅了第一节点20的推送消息的各第二节点30。
本实施例提供的消息通信的方法,通过接收第一节点20发送的第二目标消息,使得消息总线10在解析第二目标消息得到路由四元组时,可以获得第一节点20推送消息的信息,从而将第二目标消息中的推送消息推送至各第二节点30,使得每个节点仅通过消息总线路由即可直接与目标会话的节点进行消息通信,大大减少了层次化的节点的数量,提高了节点间的通信效率。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种消息通信的***,其特征在于,包括:多个节点和消息总线,其中,每个节点与所述消息总线通信相连,每个节点均有与之对应的节点id,每个节点均存储了各节点对应的节点id以及所述消息总线的总线id,将消息发送的节点作为第一节点,将接收消息的每个节点作为第二节点,所述消息总线向消息发送的节点分配源节点会话id,所述消息总线向接收消息的每个节点分配与每个接收消息的节点对应的目标节点会话id;
所述第一节点,用于响应仅向单个第二节点发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果,以本地节点的节点id作为源节点id,所述第二节点的节点id作为目标节点id,构建包含所述源节点id、所述源节点会话id、所述目标节点id以及所述目标节点会话id的路由四元组,将所述结果与所述路由四元组组合作为第一目标消息,向所述消息总线发送所述第一目标消息;
所述消息总线,用于根据所述第一节点发送的第一目标消息中的路由四元组的,目标节点id以及目标节点会话id,将所述第一目标消息发送至所述第二节点。
2.根据权利要求1所述的***,其特征在于,所述第一节点在向所述消息总线发送所述第一目标消息之前,所述第一节点还用于:
通过消息体加密的方式对所述第一目标消息进行加密,得到加密后的第一目标消息,以供所述消息总线在将所述加密后的第一目标消息发送至第二节点后,第二节点以与所述消息体加密对应的消息体解密的方式,对所述加密后的第一目标消息进行解密。
3.根据权利要求1所述的***,其特征在于,所述消息总线向消息发送的节点分配源节点会话id,包括:
所述消息总线从预先存储的id值分配记录中确定最近一次分配的id值;
所述消息总线将所述最近一次分配的id值加1,若所得到的结果超过4个字节整型,则将1作为待分配源节点会话id值,若所得到的结果不超过4个字节整型,所得到的结果作为待分配源节点会话id值;
所述消息总线判断所述待分配源节点会话id值是否与所述预先存储的id值分配记录中的id值匹配;
若是,所述消息总线将所述待分配源节点会话id值作为新的最近一次分配的id值,返回执行所述消息总线将所述最近一次分配的id值加1的步骤;
若否,所述消息总线将所述待分配源节点会话id值作为源节点会话id;
所述消息总线将所述源节点会话id分配至消息发送的节点。
4.根据权利要求1所述的***,其特征在于,所述消息总线向接收消息的每个节点分配与每个接收消息的节点对应的目标节点会话id,包括:
所述消息总线对于每个接收消息的节点,从预先存储的id值分配记录中确定最近一次分配的id值;
所述消息总线将所述最近一次分配的id值加1,若所得到的结果超过4个字节整型,则将1作为待分配目标节点会话id值,若所得到的结果不超过4个字节整型,所得到的结果作为待分配目标节点会话id值;
所述消息总线判断所述待分配目标节点会话id值是否与所述预先存储的id值分配记录中的id值匹配;
若是,所述消息总线将所述待分配目标节点会话id值作为新的最近一次分配的id值,返回执行所述消息总线将所述最近一次分配的id值加1的步骤;
若否,所述消息总线将所述待分配目标节点会话id值作为目标节点会话id;
所述消息总线将所述目标节点会话id分配至所述接收消息的节点。
5.根据权利要求1所述的***,其特征在于,所述事件工作为人机交互的操作;
所述第一节点响应仅向单个第二节点发送事件消息的指令,执行本地节点的事件工作,并确定所执行事件工作的结果,包括:
所述第一节点基于所述执行所述人机交互的操作的指令,激活人机交互界面;
所述第一节点在所述人机交互界面上,响应用户执行事件的操作,确定所执行事件工作的结果。
6.根据权利要求1所述的***,其特征在于,所述事件消息为请求类型的事件消息;
所述消息总线还用于:
将所述第一目标消息的消息类型设置为请求类型,并将所述请求类型的第一目标消息发送至所述第二节点;
所述第二节点,用于接收到所述消息总线通知执行应答事件工作的指令,执行本地节点的应答事件工作,并确定所执行应答事件工作的应答结果,将所述路由四元组中的源节点id的值与目标节点id的值互换,以及将所述路由四元组中的源节点会话id的值与目标节点会话id的值互换,得到新的路由四元组,将所述新的路由四元组与所述应答结果组合作为应答消息,并将所述应答消息发送至所述消息总线,以供所述消息总线根据所述应答消息中的路由四元组的,目标节点id以及目标节点会话id,将所述应答消息发送至所述第一节点。
7.根据权利要求1所述的***,其特征在于,所述第一节点还用于:
响应向至少两个第二节点发送订阅推送类型的事件消息的指令,执行本地节点的推送事件工作,并确定所执行推送事件工作的结果为推送消息,以本地节点的节点id作为源节点id,以0作为总线会话id,构建包含所述源节点id、所述源节点会话id、所述消息总线的总线id以及所述总线会话id的总线路由四元组,将所述推送消息与所述总线路由四元组组合作为第二目标消息,向所述消息总线发送所述第二目标消息;
所述消息总线,还用于:
将所述第二目标消息的消息类型设置为推送类型,并将所述推送类型的第二目标消息中的推送消息,发送至预先订阅了所述第一节点的推送消息的各第二节点。
8.一种消息通信的方法,其特征在于,应用于消息总线,所述消息总线与多个节点通信相连,每个节点均有与之对应的节点id,每个节点均存储了各节点对应的节点id以及所述消息总线的总线id,将消息发送的节点作为第一节点,将接收消息的每个节点作为第二节点,向消息发送的节点分配源节点会话id,向接收消息的每个节点分配与每个接收消息的节点对应的目标节点会话id,该方法包括:
接收所述第一节点发送的第一目标消息,所述第一目标消息由所述第一节点响应所述第一节点仅向单个第二节点发送事件消息的指令,执行所述第一节点的事件工作的结果,与路由四元组组成,所述路由四元组是以所述第一节点的节点id作为源节点id,所述第二节点的节点id作为目标节点id,以及所述源节点会话id和所述目标节点id构建得到的;
根据所述第一目标消息中的路由四元组的,目标节点id以及目标节点会话id,将所述第一目标消息发送至所述第二节点。
9.根据权利要求8所述的方法,其特征在于,所述事件消息为请求类型的事件消息;
该方法还包括:
将所述第一目标消息的消息类型设置为请求类型,并将所述请求类型的第一目标消息发送至所述第二节点,以供所述第二节点返回应答消息,所述应答消息由所述第二节点执行所述第二节点的应答事件工作的结果,与新的路由四元组组成,所述新的路由四元组是由所述第一节点获取的路由四元组中,源节点id的值与目标节点id的值互换,源节点会话id的值与目标节点会话id的值互换,所得到的;
根据所述应答消息中的路由四元组中的,目标节点id以及目标节点会话id,将所述应答消息发送至所述第一节点。
10.根据权利要求8所述的方法,其特征在于,还包括:
接收到所述第一节点发送的第二目标消息,所述第二目标消息由所述第一节点响应所述第一节点向至少两个第二节点发送订阅推送类型的事件消息的指令,执行所述第一节点的推送事件工作得到的推送消息,与总线路由四元组组成,所述总线路由四元组是以所述第一节点的节点id作为源节点id,以0作为总线会话id,以及所述源节点会话id和所述消息总线的总线id构建得到的;
将所述第二目标消息的消息类型设置为推送类型,并将所述推送类型的第二目标消息中的推送消息,发送至预先订阅了所述第一节点的推送消息的各第二节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210705802.7A CN115118772A (zh) | 2022-06-21 | 2022-06-21 | 一种消息通信的***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210705802.7A CN115118772A (zh) | 2022-06-21 | 2022-06-21 | 一种消息通信的***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115118772A true CN115118772A (zh) | 2022-09-27 |
Family
ID=83328934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210705802.7A Pending CN115118772A (zh) | 2022-06-21 | 2022-06-21 | 一种消息通信的***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118772A (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008071234A1 (en) * | 2006-12-14 | 2008-06-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for use in a communications network |
CN104137520A (zh) * | 2014-01-10 | 2014-11-05 | 华为技术有限公司 | 一种消息推送方法及装置 |
CN105406982A (zh) * | 2015-10-20 | 2016-03-16 | 北京电子工程总体研究所 | 一种can总线双冗余热备份方法 |
US20160119468A1 (en) * | 2014-10-27 | 2016-04-28 | Vonage Network Llc | Method and system for rapid internet protocol (ip) communication session setup using interactive push notifications |
US20180124030A1 (en) * | 2016-11-01 | 2018-05-03 | Denso International America, Inc. | Need Based Controller Area Network Bus Authentication |
CN109510748A (zh) * | 2018-12-29 | 2019-03-22 | 北京润科通用技术有限公司 | 节点及节点交互方法和*** |
CN110851061A (zh) * | 2019-10-08 | 2020-02-28 | 西安图唯谷创新科技有限公司 | 一种指环式鼠标控制终端的方法 |
CN111355774A (zh) * | 2019-08-01 | 2020-06-30 | 杭州海康威视数字技术股份有限公司 | 一种基于p2p的服务通信方法、装置及*** |
CN112527525A (zh) * | 2020-12-11 | 2021-03-19 | 广州伊智信息科技有限公司 | 基于消息队列的分布式事件总线处理方法、终端及介质 |
CN112751748A (zh) * | 2020-12-28 | 2021-05-04 | 百果园技术(新加坡)有限公司 | 会话消息管理方法、装置、服务器和可读存储介质 |
WO2021087947A1 (en) * | 2019-11-08 | 2021-05-14 | Zte Corporation | A method for influencing data traffic routing in a core network |
CN113259476A (zh) * | 2021-06-10 | 2021-08-13 | 深圳市腾讯信息技术有限公司 | 消息推送方法及*** |
CN113826353A (zh) * | 2019-05-16 | 2021-12-21 | 思科技术公司 | 分散式互联网安全协议密钥协商 |
CN113938522A (zh) * | 2021-10-12 | 2022-01-14 | 中国联合网络通信集团有限公司 | 事件消息传输方法、***、设备和计算机存储介质 |
-
2022
- 2022-06-21 CN CN202210705802.7A patent/CN115118772A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008071234A1 (en) * | 2006-12-14 | 2008-06-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for use in a communications network |
CN104137520A (zh) * | 2014-01-10 | 2014-11-05 | 华为技术有限公司 | 一种消息推送方法及装置 |
US20160119468A1 (en) * | 2014-10-27 | 2016-04-28 | Vonage Network Llc | Method and system for rapid internet protocol (ip) communication session setup using interactive push notifications |
CN105406982A (zh) * | 2015-10-20 | 2016-03-16 | 北京电子工程总体研究所 | 一种can总线双冗余热备份方法 |
US20180124030A1 (en) * | 2016-11-01 | 2018-05-03 | Denso International America, Inc. | Need Based Controller Area Network Bus Authentication |
CN109510748A (zh) * | 2018-12-29 | 2019-03-22 | 北京润科通用技术有限公司 | 节点及节点交互方法和*** |
CN113826353A (zh) * | 2019-05-16 | 2021-12-21 | 思科技术公司 | 分散式互联网安全协议密钥协商 |
CN111355774A (zh) * | 2019-08-01 | 2020-06-30 | 杭州海康威视数字技术股份有限公司 | 一种基于p2p的服务通信方法、装置及*** |
CN110851061A (zh) * | 2019-10-08 | 2020-02-28 | 西安图唯谷创新科技有限公司 | 一种指环式鼠标控制终端的方法 |
WO2021087947A1 (en) * | 2019-11-08 | 2021-05-14 | Zte Corporation | A method for influencing data traffic routing in a core network |
CN112527525A (zh) * | 2020-12-11 | 2021-03-19 | 广州伊智信息科技有限公司 | 基于消息队列的分布式事件总线处理方法、终端及介质 |
CN112751748A (zh) * | 2020-12-28 | 2021-05-04 | 百果园技术(新加坡)有限公司 | 会话消息管理方法、装置、服务器和可读存储介质 |
CN113259476A (zh) * | 2021-06-10 | 2021-08-13 | 深圳市腾讯信息技术有限公司 | 消息推送方法及*** |
CN113938522A (zh) * | 2021-10-12 | 2022-01-14 | 中国联合网络通信集团有限公司 | 事件消息传输方法、***、设备和计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6737948B2 (ja) | サイバーセキュリティ管理システム、方法、および装置 | |
US5479514A (en) | Method and apparatus for encrypted communication in data networks | |
WO2019128753A1 (zh) | 一种低延迟的量子密钥移动服务方法 | |
CN109379772B (zh) | 网络信道的切换方法、装置、设备和存储介质 | |
JP2000299698A (ja) | データ通信装置 | |
TW201008345A (en) | Multi-rate peer discovery methods and apparatus | |
CN101379755A (zh) | 数字对象标题鉴权 | |
WO2015188440A1 (zh) | 资源订阅处理方法及装置 | |
CN109586908A (zh) | 一种安全报文传输方法及其*** | |
CN115632779B (zh) | 一种基于配电网的量子加密通信方法及*** | |
JP2008310270A (ja) | 暗号装置及び暗号操作方法 | |
JP2016051921A (ja) | 通信システム | |
US20050208940A1 (en) | Network service system using a temporary use identifier | |
CN114938312B (zh) | 一种数据传输方法和装置 | |
CN111342952A (zh) | 一种安全高效的量子密钥服务方法与*** | |
JP5059473B2 (ja) | ネットワークシステム、管理計算機及び利用者端末 | |
CN101326755A (zh) | 数字对象标题以及传输信息 | |
EP1135888A1 (en) | Apparatus and method for limiting unauthorized access to a network multicast | |
CN115118772A (zh) | 一种消息通信的***及方法 | |
Soroush et al. | Providing transparent security services to sensor networks | |
JP2004214758A (ja) | 親局及び子局及び通信システム及び通信プログラム及び通信プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2018174550A (ja) | 通信システム | |
CN113938883A (zh) | 基于中间节点的数据加密发送方法及装置 | |
JP2023520496A (ja) | ノード間のプライバシー通信方法およびネットワークノード | |
CN111224777A (zh) | Sdn网络组播成员信息加密方法、***、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |