CN111130999A - 一种适用于分布式消息传输的方法及总线适配器 - Google Patents
一种适用于分布式消息传输的方法及总线适配器 Download PDFInfo
- Publication number
- CN111130999A CN111130999A CN201911337784.6A CN201911337784A CN111130999A CN 111130999 A CN111130999 A CN 111130999A CN 201911337784 A CN201911337784 A CN 201911337784A CN 111130999 A CN111130999 A CN 111130999A
- Authority
- CN
- China
- Prior art keywords
- client
- message
- name
- bus adapter
- submodule
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种适用于分布式消息传输的方法及总线适配器,提供一种适用于消息生产者和消息消费者之间的点到点的通信,消息根据客户端名称直接传输到相应的客户端队列中,不在总线适配器处堆积,提高分布式消息交互效率、减轻总线适配器的负荷。
Description
技术领域
本发明涉及消息处理技术领域,尤其涉及一种适用于分布式消息传输的方法及总线适配器。
背景技术
面向消息的中间件(Message-Oriented Middleware,MOM)指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式***的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。
现有技术中,发布/订阅的面向消息的中间件,***A将消息发送到消息中间件,若***B订阅***A发送的消息,则将该消息推送给***B。在大数据量的情况下,消息中间件承担的负荷过重,导致消息产生积压、延迟等情况发生。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种适用于分布式消息传输的方法及总线适配器。
本发明提供了一种适用于分布式消息传输的方法,包括:
步骤S1:所述总线适配器根据保存的地址信息生成注册节点消息,创建分布式节点;
步骤S2:所述总线适配器寻找除新创建之外的其它分布式节点,向所有发现的分布式节点发送注册节点消息的异步信息;
步骤S3:所述总线适配器创建本地客户端连接处理线程;
步骤S4:总线适配器接收消息并判断消息类型,如为分布式消息则执行步骤S5,如为注册分布式节点的响应消息则执行步骤S6,如为分布式节点异常退出消息则执行步骤S7,如为未知消息则执行步骤S8;
步骤S5:所述总线适配器判断所述分布式消息的类型,执行相应的操作;
步骤S6:所述总线适配器判断接收的注册分布式节点的响应消息中的远程地址信息和分布式节点的名称是否存在于客户端列表中,若存在则所述总线适配器将本地地址信息和本地连接的所有客户端名称使用注册节点消息封装后发送至所述远程地址信息对应的远程总线适配器,否则返回步骤S4;
步骤S7:所述总线适配器将异常节点的地址信息和对应的所有客户端名称从客户端列表中删除,返回步骤S4;
步骤S8:所述总线适配器丢弃所述未知消息,返回步骤S4;
所述步骤S5当所述分布式消息类型为节点间通讯消息则执行步骤A1;
步骤A1:所述总线适配器判断目标节点客户端的名称是否存在于保存的客户端列表中,是则执行步骤A2,否则返回步骤S4;
步骤A2:所述总线适配器判断所述目标节点客户端的类型,如为本地客户端则执行步骤A3,如为远程客户端则执行步骤A4;
步骤A3:所述总线适配器将对话消息保存至所述指定名称的客户端的消息队列中,返回步骤S4;
步骤A4:所述总线适配器使用节点间通讯消息封装所述目标节点客户端的名称和对话消息,发送至所述目标节点客户端,返回步骤S4。
本发明又提供了一种适用于分布式消息传输的总线适配器,包括:
生成创建模块,用于根据保存的地址信息生成注册节点消息,创建分布式节点;
寻找发送模块,用于寻找除新创建之外的其他分布式节点,向所有发现的分布式节点发送生成创建模块生成的注册节点消息的异步信息;
创建模块,用于创建本地客户端连接处理线程;
接收判断模块,用于接收消息并判断消息类型;
判断执行模块,用于所述接收判断模块判断消息类型为分布式消息时,判断所述分布式消息的类型,执行相应的操作;
判断模块,用于所述接收判断模块判断消息类型为注册分布式节点的响应消息时,判断接收的注册分布式节点的响应消息中的远程地址信息和分布式节点的名称是否存在于客户端列表中;
封装发送模块,用于所述判断模块判断存在将本地地址信息和本地连接的所述客户端名称使用注册节点消息封装后发送至所述远程地址信息对应的远程总线适配器,触发所述接收判断模块;
删除模块,用于所述接收判断模块判断消息类型为分布式节点异常退出消息时,将异常节点的地址信息和对应的所有客户端名称从客户端列表中删除,触发所述接收判断模块;
丢弃模块,用于所述接收判断模块判断消息类型为未知消息时,丢弃所述未知消息,触发所述接收判断模块;
所述判断执行模块具体包括:
第一判断子模块,用于所述判断执行模块判断所述分布式消息的类型为节点间通讯消息时,判断目标节点客户端的名称是否存在于保存的客户端列表中,是则触发第二判断子模块,否则触发接收判断模块;
所述第二判断子模块,用于判断所述目标节点客户端的类型;
第一保存子模块,用于所述第二判断子模块判断类型为本地客户端,将对话消息保存至所述指定名称的客户端的消息队列中,触发所述接收判断模块;
第一封装发送子模块,用于所述第二判断子模块判断类型为远程客户端,使用节点间通讯消息封装所述目标节点客户端的名称和对话消息,发送至所述目标节点客户端,触发所述接收判断模块。
本发明与现有技术相比,具有以下优点:
本发明技术方案提供一种适用于消息生产者和消息消费者之间的点到点的通信,消息根据客户端名称直接传输到相应的客户端队列中,不在总线适配器处堆积,提高分布式消息交互效率、减轻总线适配器的负荷。
附图说明
图1为本发明实施例二提供的一种适用于分布式消息传输的方法的流程图;
图2为本发明实施例二中步骤103的细化流程图;
图3为本发明实施例二中步骤216的细化流程图;
图4为本发明实施例二中步骤105的细化流程图;
图5为本发明实施例三提供的一种适用于分布式消息传输的总线适配器的方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种适用于分布式消息传输的方法,包括:
步骤S1:总线适配器根据保存的地址信息生成注册节点消息,创建分布式节点;
步骤S2:总线适配器寻找除新创建之外的其它分布式节点,向所有发现的分布式节点发送注册节点消息的异步信息;
步骤S3:总线适配器创建本地客户端连接处理线程;
步骤S4:总线适配器接收消息并判断消息类型,如为分布式消息则执行步骤S5,如为注册分布式节点的响应消息则执行步骤S6,如为分布式节点异常退出消息则执行步骤S7,如为未知消息则执行步骤S8;
步骤S5:总线适配器判断分布式消息的类型,执行相应的操作;
步骤S6:总线适配器判断接收的注册分布式节点的响应消息中的远程地址信息和分布式节点的名称是否存在于客户端列表中,若存在则总线适配器将本地地址信息和本地连接的所有客户端名称使用注册节点消息封装后发送至远程地址信息对应的远程总线适配器,否则返回步骤S4;
步骤S7:总线适配器将异常节点的地址信息和对应的所有客户端名称从客户端列表中删除,返回步骤S4;
步骤S8:总线适配器丢弃未知消息,返回步骤S4;
步骤S5当分布式消息类型为节点间通讯消息则执行步骤A1;
步骤A1:总线适配器判断目标节点客户端的名称是否存在于保存的客户端列表中,是则执行步骤A2,否则返回步骤S4;
步骤A2:总线适配器判断目标节点客户端的类型,如为本地客户端则执行步骤A3,如为远程客户端则执行步骤A4;
步骤A3:总线适配器将对话消息保存至指定名称的客户端的消息队列中,返回步骤S4;
步骤A4:总线适配器使用节点间通讯消息封装目标节点客户端的名称和对话消息,发送至目标节点客户端,返回步骤S4。
实施例二
本发明实施例二提供一种适用于分布式消息传输的方法,如图1所示,包括:
步骤101:总线适配器根据保存的地址信息生成注册节点消息,创建分布式节点;
具体的,地址信息为进程id;
步骤102:总线适配器寻找除新创建之外的其它分布式节点,向所有发现的分布式节点发送注册节点消息的异步消息;
步骤103:总线适配器创建本地客户端连接处理线程;
在本实施例中,步骤103的实现过程如图2所示,具体包括:
步骤201:总线适配器侦听本地客户端套接字连接;
步骤202:总线适配器接收本地客户端的套接字连接;
步骤203:总线适配器提示用户输入客户端名称并等待接收;
步骤204:总线适配器判断接收的客户端名称是否有效,是则执行步骤205,否则返回步骤203;
具体的,总线适配器判断接收的客户端名称是否满足第一预设条件,是则执行步骤205,否则执行步骤203;
具体的,第一预设条件为:为字母、数字和特殊字符的组合;
步骤205:总线适配器判断接收的客户端名称是否存在于保存的客户端列表中,是则返回步骤203,否则执行步骤206;
步骤206:总线适配器将接收的客户端名称保存到客户端列表中,并使用***通知消息封装该客户端已加入的信息并保存至所有本地客户端的消息队列中;
步骤207:总线适配器使用新客户端加入消息封装该客户端已加入的信息发送给其他分布式节点;
步骤208:总线适配器判断是否有用户输入,是则执行步骤209,否则执行步骤210;
步骤209:总线适配器将用户输入的消息放到当前客户端的消息队列中,执行步骤210;
步骤210:总线适配器读取当前客户端的被踢除标志,根据被踢除标志判断当前客户端是否被踢除,是则执行步骤211,否则执行步骤212;
具体的,如当前客户端被踢除的标志为1则当前客户端被踢除,如当前客户端被踢除的标志为0则当前客户端没有被踢除;
步骤211:总线适配器通知当前客户端其已经被踢除,并强制结束当前客户端线程;
步骤212:总线适配器从当前客户端的消息队列中读取一条消息,判断消息类型,如为***通知消息则执行步骤213,如为本地客户端私有消息则执行步骤214,如为本地广播消息则执行步骤215,如为命令消息则执行步骤216;
步骤213:总线适配器打印***通知消息;
例如,***通知消息为“某客户端已加入”或“某客户端断开”;
步骤214:总线适配器打印本地客户端私有消息;
步骤215:总线适配器打印本地广播消息;
步骤216:总线适配器处理命令消息;
在本实施例中,步骤216的实现过程如图3所示,具体包括:
步骤301:总线适配器判断命令消息的类型,如为踢除指定名称的客户端则执行步骤302,如为给指定名称的客户端发送消息则执行步骤306,如为广播消息则执行步骤310,如为退出总线***消息则执行步骤312;
步骤302:总线适配器判断指定名称的客户端是否存在于保存的客户端列表中,是则执行步骤303,否则返回步骤212;
步骤303:总线适配器判断指定名称的客户端的类型,如为本地客户端则执行步骤304,如为远程客户端则执行步骤305;
步骤304:总线适配器将指定名称的客户端的被踢除标志置位,将踢除成功消息放入踢除客户端的消息队列中,返回步骤212;
步骤305:总线适配器使用踢除客户端消息封装指定名称的客户端名称和踢除客户端名称,发送至指定名称的客户端,返回步骤212;
步骤306:总线适配器判断指定名称的客户端是否存在于保存的客户端列表中,是则执行步骤307,否则返回步骤212;
步骤307:总线适配器判断指定名称的客户端的类型,如为本地客户端则执行步骤308,如为远程客户端则执行步骤309;
步骤308:总线适配器将消息保存至指定名称的客户端的消息队列中,返回步骤212;
步骤309:总线适配器使用节点间通讯消息封装指定名称的客户端名称和对话消息,发送至指定名称的客户端,返回步骤212;
步骤310:总线适配器遍历客户端列表中所有的客户端,如客户端的类型为本地客户端则执行步骤311,如客户端的类型为远程客户端则返回步骤212;
步骤311:总线适配器将广播消息保存至客户端的消息队列中,返回步骤212;
步骤312:总线适配器结束该客户端线程,返回步骤212;
步骤104:总线适配器接收消息并判断消息类型,如为分布式消息则执行步骤105,如为注册分布式节点的响应消息则执行步骤106,如为分布式节点异常退出消息则执行步骤108,如为未知消息则执行步骤109;
步骤105:总线适配器处理分布式消息;
在本实施例中,步骤105的实现过程如图4所示,具体包括:
步骤401:总线适配器判断分布式消息的类型,如为节点间通讯消息则执行步骤402,如为注册节点消息则执行步骤406,如为广播消息则执行步骤410,如为踢除客户端消息则执行步骤412,如为新客户端加入消息则执行步骤416,如为客户端断开消息则执行步骤419;
步骤402:总线适配器判断指定名称的客户端是否存在于保存的客户端列表中,是则执行步骤403,否则返回步骤104;
步骤403:总线适配器判断指定名称的客户端的类型,如为本地客户端则执行步骤404,如为远程客户端则执行步骤405;
步骤404:总线适配器将对话消息保存至指定名称的客户端的消息队列中,返回步骤104;
步骤405:总线适配器使用节点间通讯消息封装指定名称的客户端的名称和对话消息,发送至指定名称的客户端,返回步骤104;
步骤406:总线适配器将注册节点消息中的地址信息保存至客户端列表中,并将注册节点的所有客户端名称保存至客户端列表中;
步骤407:总线适配器判断注册节点消息的类型,如为其他分布式节点的注册信息则执行步骤408,如为其他分布式节点回复的响应则执行步骤409;
步骤408:总线适配器将本地地址信息和本地连接的所有客户端名称使用注册节点消息封装后发送至其他分布式节点,执行步骤409;
步骤409:总线适配器判断注册节点消息中的地址信息是否在监控列表中,是则返回步骤104,否则总线适配器将注册节点消息中的地址信息添加到监控列表中,返回步骤104;
具体的,总线适配器通过查询客户端列表中的其他节点地址信息是否存在接收的对方节点的地址信息,如存在则返回步骤104,如不存在则将接收的对方节点的地址信息增加至客户端列表中的其他节点地址信息中进行监控;
步骤410:总线适配器遍历客户端列表中所有的客户端,如客户端的类型为本地客户端则执行步骤411,如客户端的类型为远程客户端则返回步骤104;
步骤411:总线适配器将广播消息保存至客户端的消息队列中,返回步骤104;
步骤412:总线适配器判断被踢除客户端的名称是否存在于保存的客户端列表中,是则执行步骤413,否则返回步骤104;
步骤413:总线适配器判断被踢除客户端的类型,如为本地客户端则执行步骤414,如为远程客户端则执行步骤415;
步骤414:总线适配器将被踢除客户端的被踢除标志置位,将踢除成功的消息放入踢除客户端的消息队列中,返回步骤104;
步骤415:总线适配器使用踢除客户端消息封装被踢除客户端的名称和踢除客户端的名称,发送至被踢除客户端,返回步骤104;
步骤416:总线适配器判断新客户端的名称是否存在于保存的客户端列表中,是则执行步骤417,否则执行步骤418;
步骤417:总线适配器向新客户端对应的地址信息发送踢除该客户端消息,返回步骤104;
步骤418:总线适配器将新客户端的名称保存至客户端列表中,使用***通知消息封装该客户端加入的信息,发送至所有本地客户端的消息队列中,返回步骤104;
步骤419:总线适配器判断客户端名称是否存在于保存的客户端列表中,是则执行步骤420,否则返回步骤104;
步骤420:总线适配器判断客户端的类型,如为本地客户端则返回步骤104,如为远程客户端则执行步骤421;
步骤421:总线适配器从客户端列表中删除对应的客户端名称,使用***通知消息封装该客户端断开的信息并保存至所有本地客户端的消息队列中,返回步骤104;
步骤106:总线适配器判断接收的注册分布式节点的响应消息中的远程地址信息和分布式节点名称是否存在于客户端列表中,均为是则执行步骤107,否则返回步骤104;
步骤107:总线适配器将本地地址信息和本地连接的所有客户端名称使用注册节点消息封装后发送至远程地址信息对应的远程总线适配器,返回步骤104;
步骤108:总线适配器将异常节点的地址信息和对应的所有客户端名称从客户端列表中删除,返回步骤104;
步骤109:总线适配器丢弃未知消息,返回步骤104。
实施例三
本发明实施例三提供一种适用于分布式消息传输的总线适配器,如图5所示,包括:
生成创建模块11,用于根据保存的地址信息生成注册节点消息,创建分布式节点;
寻找发送模块12,用于寻找除新创建之外的其他分布式节点,向所有发现的分布式节点发送生成创建模块11生成的注册节点消息的异步信息;
创建模块13,用于创建本地客户端连接处理线程;
接收判断模块14,用于接收消息并判断消息类型;
判断执行模块15,用于接收判断模块14判断消息类型为分布式消息时,判断分布式消息的类型,执行相应的操作;
判断模块16,用于接收判断模块14判断消息类型为注册分布式节点的响应消息时,判断接收的注册分布式节点的响应消息中的远程地址信息和分布式节点的名称是否存在于客户端列表中;
封装发送模块17,用于判断模块16判断存在将本地地址信息和本地连接的客户端名称使用注册节点消息封装后发送至远程地址信息对应的远程总线适配器,触发接收判断模块14;
删除模块18,用于接收判断模块14判断消息类型为分布式节点异常退出消息时,将异常节点的地址信息和对应的客户端名称从客户端列表中删除,触发接收判断模块14;
丢弃模块19,用于接收判断模块14判断消息类型为未知消息时,丢弃未知消息,触发接收判断模块14。
可选的,在本实施例中,判断执行模块15具体包括:
第一判断子模块,用于判断执行模块15判断分布式消息的类型为节点间通讯消息时,判断目标节点客户端的名称是否存在于保存的客户端列表中,是则触发第三判断子模块,否则触发接收判断模块14;
第二判断子模块,用于判断目标节点客户端的类型;
第一保存子模块,用于第二判断子模块判断类型为本地客户端,将对话消息保存至指定名称的客户端的消息队列中,触发接收判断模块14;
第一封装发送子模块,用于第二判断子模块判断类型为远程客户端,使用节点间通讯消息封装目标节点客户端的名称和对话消息,发送至目标节点客户端,触发接收判断模块14;
可选的,在本实施例中,判断执行模块15具体包括:
第二保存子模块,用于当判断执行模块15判断分布式消息类型为注册节点消息时,将注册节点消息中的地址信息保存至客户端列表中,并将注册节点的客户端名称保存至客户端列表中;
第三判断子模块,用于判断注册节点信息的类型;
第二封装发送子模块,用于第三判断子模块判断注册节点信息的类型为其他分布式节点的注册信息,将本地地址信息和本地连接的客户端名称使用注册节点信息封装后发送至其他分布式节点;
第四判断子模块,用于第三判断子模块判断注册节点信息的类型为其他分布式节点回复的响应,判断注册节点信息中的地址信息是否在监控列表中,是则触发接收判断模块,否则触发添加子模块;
添加子模块,用于将注册节点信息中的地址信息添加到监控列表中,触发接收判断模块14。
可选的,在本实施例中,判断执行模块15具体包括:
遍历判断子模块,用于当判断执行模块15判断分布式消息类型为广播消息时,遍历客户端列表中所有的客户端并判断客户端类型,如客户端的类型为本地客户端触发第三保存子模块,如客户端类型为远程客户端则触发接收判断模块;
第三保存子模块,用于将广播消息保存至客户端的消息队列中,触发接收判断模块14。
可选的,在本实施例中,判断执行模块15具体包括:
第五判断子模块,用于当判断执行模块15判断分布式消息类型为踢除客户端消息时,判断被踢除客户端的名称是否存在于保存的客户端列表中,是则触发第六判断子模块,否则触发接收判断模块14;
第六判断子模块,用于判断被踢除客户端的类型,如为本地客户端则触发置位保存子模块,如为远程客户端则触发第三封装发送子模块;
置位保存子模块,用于将被踢除客户端的被踢除标志置位,将踢除成功的消息放入踢除客户端的消息队列中;
第三封装发送子模块,用于使用踢除客户端消息封装被踢除客户端的名称和踢除客户端的名称,发送至被踢除客户端,触发接收判断模块14。
可选的,在本实施中,判断执行模块15具体包括:
第七判断子模块,用于当判断执行模块15判断分布式消息类型为新客户端加入消息时,判断新客户端的名称是否存在于保存的客户端列表中,是则触发发送子模块,否则触发保存发送子模块;
发送子模块,用于向对应于新客户端对应的地址信息的总线适配器发送踢除该客户端的消息,触发接收判断模块;
保存发送子模块,用于将新客户端的名称保存至客户端列表中,使用***通知消息封装该客户端加入的消息,发送至本地客户端的消息队列中,触发接收判断模块。
可选的,在本实施中,判断执行模块15具体包括:
第八判断子模块,用于当判断执行模块15判断分布式消息类型为客户端断开消息时,判断断开客户端的名称是否存在于保存的客户端列表中,是则触发第九判断子模块,否则触发接收判断模块;
第九判断子模块,用于判断断开客户端的类型,如为本地客户端则触发接收判断模块,如为远程客户端则触发删除保存子模块;
删除保存子模块,用于从客户端列表中删除对应的断开客户端的名称,使用***通知消息封装该客户端断开的信息并保存至所有本地客户端的消息队列中,触发接收判断模块14。
可选的,在本实施例中,创建模块13具体包括:
侦听子模块,用于侦听本地客户端套接字连接;
接收子模块,用于接收本地客户端的套接字连接;
提示接收子模块,用于提示用户输入客户端名称并等待接收;
第十判断子模块,用于判断提示接收子模块接收的客户端名称是否有效,是则触发第十一判断子模块,否则触发提示接收子模块;
第十一判断子模块,用于判断接收的客户端名称是否存在于保存的客户端列表中,是则触发提示接收子模块,否则触发封装保存子模块;
封装保存子模块,用于将接收的客户端名称保存到客户端列表中,使用***通知消息封装该客户端已加入的信息并保存至所有本地客户端的消息队列中;
第四封装发送子模块,用于使用新客户端加入消息封装该客户端已加入的消息发送给除新创建之外的其他分布式节点;
第十二判断子模块,用于判断是否有用户输入,是则触发第四保存子模块,否则触发读取判断子模块;
第四保存子模块,用于将用户输入的消息放到当前客户端的消息队列中,触发读取判断子模块;
读取判断子模块,用于读取当前客户端的被踢除标志,根据被踢除标志判断当前客户端是否被踢除,是则触发通知结束子模块,否则触发读取判断子模块;
通知结束子模块,用于通知当前客户端其已经被踢除,并强制结束当前客户端线程;
读取判断子模块,用于从当前客户端的消息队列中读取一条消息,判断消息类型,如为***通知消息则触发第一打印子模块,如为本地客户端私有消息则触发第二打印子模块,如为本地广播消息则触发第三打印子模块,如为命令消息则触发处理子模块;
第一打印子模块,用于打印***通知消息;
第二打印子模块,用于打印本地客户端私有消息;
第三打印子模块,用于打印本地广播消息;
处理子模块,用于处理命令消息。
可选的,在本实施例中,处理子模块具体包括:
第一判断单元,用于判断命令消息的类型,如为踢除指定名称的客户端消息则触发第二判断单元,如为给指定名称的客户端发送消息则触发第四判断单元,如为广播消息则触发遍历判断单元,如为退出总线***消息则触发结束单元;
第二判断单元,用于判断踢除指定名称的客户端是否存在于保存的客户端列表中,是则触发第三判断单元,否则触发读取判断子模块;
第三判断单元,用于判断踢除指定名称的客户端的类型,如为本地客户端则触发置位保存单元,如为远程客户端则触发第一封装发送单元;
置位保存单元,用于将踢除指定名称的客户端的被踢除标志置位,将踢除成功消息放入踢除客户端的消息队列中,触发读取判断子模块;
第一封装发送单元,用于使用踢除客户端消息封装踢除指定名称的客户端的名称和踢除客户端的名称,发送至踢除指定名称的客户端,触发读取判断子模块;
第四判断单元,用于判断指定名称的客户端是否存在于保存的客户端列表中,是则触发第五判断单元,否则触发读取判断子模块;
第五判断单元,用于判断指定名称的客户端的类型,如为本地客户端则触发第一保存单元,如为远程客户端则触发第二封装发送单元;
第一保存单元,用于经对话消息保存至指定名称的客户端的消息队列中,触发读取判断子模块;
第二封装发送单元,用于使用节点间通讯消息封装指定名称的客户端名称和对话消息,发送至指定名称的客户端,触发读取判断子模块;
遍历判断单元,用于遍历客户端列表中所有的客户端,如客户端的类型为本地客户端则触发第二保存单元,如客户端的类型为远程客户端则触发读取判断子模块;
第二保存单元,用于将广播消息保存至客户端的消息队列中,触发读取判断子模块;
结束单元,用于结束该客户端线程,触发读取判断子模块。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (16)
1.一种适用于分布式消息传输的总线适配器,其特征在于,包括:
生成创建模块,用于根据保存的地址信息生成注册节点消息,创建分布式节点;
寻找发送模块,用于寻找除新创建之外的其他分布式节点,向所有发现的分布式节点发送生成创建模块生成的注册节点消息的异步信息;
创建模块,用于创建本地客户端连接处理线程;
接收判断模块,用于接收消息并判断消息类型;
判断执行模块,用于所述接收判断模块判断消息类型为分布式消息时,判断所述分布式消息的类型,执行相应的操作;
判断模块,用于所述接收判断模块判断消息类型为注册分布式节点的响应消息时,判断接收的注册分布式节点的响应消息中的远程地址信息和分布式节点的名称是否存在于客户端列表中;
封装发送模块,用于所述判断模块判断存在将本地地址信息和本地连接的所述客户端名称使用注册节点消息封装后发送至所述远程地址信息对应的远程总线适配器,触发所述接收判断模块;
删除模块,用于所述接收判断模块判断消息类型为分布式节点异常退出消息时,将异常节点的地址信息和对应的所有客户端名称从客户端列表中删除,触发所述接收判断模块;
丢弃模块,用于所述接收判断模块判断消息类型为未知消息时,丢弃所述未知消息,触发所述接收判断模块;
所述判断执行模块具体包括:
第一判断子模块,用于所述判断执行模块判断所述分布式消息的类型为节点间通讯消息时,判断目标节点客户端的名称是否存在于保存的客户端列表中,是则触发第二判断子模块,否则触发接收判断模块;
所述第二判断子模块,用于判断所述目标节点客户端的类型;
第一保存子模块,用于所述第二判断子模块判断类型为本地客户端,将对话消息保存至所述指定名称的客户端的消息队列中,触发所述接收判断模块;
第一封装发送子模块,用于所述第二判断子模块判断类型为远程客户端,使用节点间通讯消息封装所述目标节点客户端的名称和对话消息,发送至所述目标节点客户端,触发所述接收判断模块。
2.如权利要求1所述的总线适配器,其特征在于,所述判断执行模块具体包括:
第二保存子模块,用于当所述判断执行模块判断所述分布式消息类型为注册节点消息时,将注册节点消息中的地址信息保存至所述客户端列表中,并将注册节点的所述客户端名称保存至所述客户端列表中;
第三判断子模块,用于判断所述注册节点信息的类型;
第二封装发送子模块,用于所述第三判断子模块判断所述注册节点信息的类型为其他分布式节点的注册信息,将本地地址信息和本地连接的所述客户端名称使用注册节点信息封装后发送至其他分布式节点;
第四判断子模块,用于所述第三判断子模块判断所述注册节点信息的类型为其他分布式节点回复的响应,判断所述注册节点信息中的地址信息是否在监控列表中,是则触发所述接收判断模块,否则触发添加子模块;
所述添加子模块,用于将所述注册节点信息中的地址信息添加到所述监控列表中,触发所述接收判断模块。
3.如权利要求1所述的总线适配器,其特征在于,所述判断执行模块具体包括:
遍历判断子模块,用于当所述判断执行模块判断所述分布式消息类型为广播消息时,遍历所述客户端列表中所有的客户端并判断客户端类型,如所述客户端的类型为本地客户端触发所述第三保存子模块,如所述客户端类型为远程客户端则触发所述接收判断模块;
第三保存子模块,用于将广播消息保存至客户端的消息队列中,触发所述接收判断模块。
4.如权利要求1所述的总线适配器,其特征在于,所述判断执行模块具体包括:
第五判断子模块,用于当所述判断执行模块判断所述分布式消息类型为踢除客户端消息时,判断被踢除客户端的名称是否存在于保存的客户端列表中,是则触发第六判断子模块,否则触发接收判断模块;
所述第六判断子模块,用于判断所述被踢除客户端的类型,如为本地客户端则触发置位保存子模块,如为远程客户端则触发第三封装发送子模块;
所述置位保存子模块,用于将所述被踢除客户端的被踢除标志置位,将踢除成功的消息放入踢除客户端的消息队列中;
所述第三封装发送子模块,用于使用踢除客户端消息封装所述被踢除客户端的名称和踢除客户端的名称,发送至所述被踢除客户端,触发所述接收判断模块。
5.如权利要求1所述的总线适配器,其特征在于,所述判断执行模块具体包括:
第七判断子模块,用于当所述判断执行模块判断所述分布式消息类型为新客户端加入消息时,判断新客户端的名称是否存在于保存的客户端列表中,是则触发发送子模块,否则触发保存发送子模块;
所述发送子模块,用于向对应于新客户端对应的地址信息的总线适配器发送踢除该客户端的消息,触发所述接收判断模块;
所述保存发送子模块,用于将新客户端的名称保存至所述客户端列表中,使用***通知消息封装该客户端加入的消息,发送至所述本地客户端的消息队列中,触发所述接收判断模块。
6.如权利要求1所述的总线适配器,其特征在于,所述判断执行模块具体包括:
第八判断子模块,用于当所述判断执行模块判断所述分布式消息类型为客户端断开消息时,判断断开客户端的名称是否存在于保存的客户端列表中,是则触发第九判断子模块,否则触发所述接收判断模块;
所述第九判断子模块,用于判断所述断开客户端的类型,如为本地客户端则触发所述接收判断模块,如为远程客户端则触发删除保存子模块;
所述删除保存子模块,用于从所述客户端列表中删除对应的断开客户端的名称,使用***通知消息封装该客户端断开的信息并保存至所有本地客户端的消息队列中,触发所述接收判断模块。
7.如权利要求1所述的总线适配器,其特征在于,所述创建模块具体包括:
侦听子模块,用于侦听本地客户端套接字连接;
接收子模块,用于接收所述本地客户端的套接字连接;
提示接收子模块,用于提示用户输入客户端名称并等待接收;
第十判断子模块,用于判断所述提示接收子模块接收的客户端名称是否有效,是则触发第十一判断子模块,否则触发所述提示接收子模块;
所述第十一判断子模块,用于判断所述接收的客户端名称是否存在于保存的客户端列表中,是则触发提示接收子模块,否则触发封装保存子模块;
所述封装保存子模块,用于将所述接收的客户端名称保存到所述客户端列表中,使用***通知消息封装该客户端已加入的信息并保存至所有本地客户端的消息队列中;
第四封装发送子模块,用于使用新客户端加入消息封装该客户端已加入的消息发送给所述除新创建之外的其他分布式节点;
第十二判断子模块,用于判断是否有用户输入,是则触发第四保存子模块,否则触发读取判断子模块;
所述第四保存子模块,用于将用户输入的消息放到当前客户端的消息队列中,触发读取判断子模块;
所述读取判断子模块,用于读取当前客户端的被踢除标志,根据被踢除标志判断当前客户端是否被踢除,是则触发通知结束子模块,否则触发读取判断子模块;
所述通知结束子模块,用于通知当前客户端其已经被踢除,并强制结束当前客户端线程;
所述读取判断子模块,用于从当前客户端的消息队列中读取一条消息,判断消息类型,如为***通知消息则触发第一打印子模块,如为本地客户端私有消息则触发第二打印子模块,如为本地广播消息则触发第三打印子模块,如为命令消息则触发处理子模块;
所述第一打印子模块,用于打印所述***通知消息;
所述第二打印子模块,用于打印所述本地客户端私有消息;
所述第三打印子模块,用于打印所述本地广播消息;
所述处理子模块,用于处理所述命令消息。
8.如权利要求7所述的总线适配器,其特征在于,所述处理子模块具体包括:
第一判断单元,用于判断所述命令消息的类型,如为踢除指定名称的客户端消息则触发第二判断单元,如为给指定名称的客户端发送消息则触发第四判断单元,如为广播消息则触发遍历判断单元,如为退出总线***消息则触发结束单元;
所述第二判断单元,用于判断踢除指定名称的客户端是否存在于保存的客户端列表中,是则触发第三判断单元,否则触发读取判断子模块;
所述第三判断单元,用于判断踢除指定名称的客户端的类型,如为本地客户端则触发置位保存单元,如为远程客户端则触发第一封装发送单元;
所述置位保存单元,用于将踢除指定名称的客户端的被踢除标志置位,将踢除成功消息放入踢除客户端的消息队列中,触发读取判断子模块;
所述第一封装发送单元,用于使用踢除客户端消息封装踢除指定名称的客户端的名称和踢除客户端的名称,发送至踢除指定名称的客户端,触发读取判断子模块;
所述第四判断单元,用于判断指定名称的客户端是否存在于保存的客户端列表中,是则触发第五判断单元,否则触发读取判断子模块;
所述第五判断单元,用于判断指定名称的客户端的类型,如为本地客户端则触发第一保存单元,如为远程客户端则触发第二封装发送单元;
所述第一保存单元,用于经对话消息保存至指定名称的客户端的消息队列中,触发读取判断子模块;
所述第二封装发送单元,用于使用节点间通讯消息封装指定名称的客户端名称和对话消息,发送至指定名称的客户端,触发读取判断子模块;
所述遍历判断单元,用于遍历客户端列表中所有的客户端,如客户端的类型为本地客户端则触发第二保存单元,如客户端的类型为远程客户端则触发读取判断子模块;
所述第二保存单元,用于将所述广播消息保存至客户端的消息队列中,触发读取判断子模块;
所述结束单元,用于结束该客户端线程,触发读取判断子模块。
9.一种适用于分布式消息传输的方法,其特征在于,包括:
步骤S1:所述总线适配器根据保存的地址信息生成注册节点消息,创建分布式节点;
步骤S2:所述总线适配器寻找除新创建之外的其它分布式节点,向所有发现的分布式节点发送注册节点消息的异步信息;
步骤S3:所述总线适配器创建本地客户端连接处理线程;
步骤S4:总线适配器接收消息并判断消息类型,如为分布式消息则执行步骤S5,如为注册分布式节点的响应消息则执行步骤S6,如为分布式节点异常退出消息则执行步骤S7,如为未知消息则执行步骤S8;
步骤S5:所述总线适配器判断所述分布式消息的类型,执行相应的操作;
步骤S6:所述总线适配器判断接收的注册分布式节点的响应消息中的远程地址信息和分布式节点的名称是否存在于客户端列表中,若存在则所述总线适配器将本地地址信息和本地连接的所有客户端名称使用注册节点消息封装后发送至所述远程地址信息对应的远程总线适配器,否则返回步骤S4;
步骤S7:所述总线适配器将异常节点的地址信息和对应的所有客户端名称从客户端列表中删除,返回步骤S4;
步骤S8:所述总线适配器丢弃所述未知消息,返回步骤S4;
所述步骤S5当所述分布式消息类型为节点间通讯消息则执行步骤A1;
步骤A1:所述总线适配器判断目标节点客户端的名称是否存在于保存的客户端列表中,是则执行步骤A2,否则返回步骤S4;
步骤A2:所述总线适配器判断所述目标节点客户端的类型,如为本地客户端则执行步骤A3,如为远程客户端则执行步骤A4;
步骤A3:所述总线适配器将对话消息保存至所述指定名称的客户端的消息队列中,返回步骤S4;
步骤A4:所述总线适配器使用节点间通讯消息封装所述目标节点客户端的名称和对话消息,发送至所述目标节点客户端,返回步骤S4。
10.如权利要求9所述的方法,其特征在于,所述步骤S5还包括:当所述分布式消息类型为注册节点消息则执行步骤B1;
步骤B1:所述总线适配器将注册节点消息中的地址信息保存至所述客户端列表中,并将注册节点的所有客户端名称保存至所述客户端列表中;
步骤B2:所述总线适配器判断所述注册节点消息的类型,如为其他分布式节点的注册信息则执行步骤B3,如为其他分布式节点回复的响应则执行步骤B4;
步骤B3:所述总线适配器将本地地址信息和本地连接的所有客户端名称使用注册节点消息封装后发送至其他分布式节点,执行步骤B4;
步骤B4:所述总线适配器判断所述注册节点消息中的地址信息是否在监控列表中,是则返回步骤S4,否则所述总线适配器将所述注册节点消息中的地址信息添加到所述监控列表中,返回步骤S4。
11.如权利要求9所述的方法,其特征在于,所述步骤S5还包括:当所述分布式消息类型为广播消息则执行步骤C1;
步骤C1:所述总线适配器遍历所述客户端列表中所有的客户端并判断客户端类型,如客户端的类型为本地客户端则执行步骤C2,如客户端的类型为远程客户端则返回步骤S4;
步骤C2:所述总线适配器将广播消息保存至客户端的消息队列中,返回步骤S4。
12.如权利要求9所述的方法,其特征在于,所述步骤S5还包括:当所述分布式消息类型为踢除客户端消息则执行步骤D1;
步骤D1:所述总线适配器判断被踢除客户端的名称是否存在于保存的客户端列表中,是则执行步骤D2,否则返回步骤S4;
步骤D2:所述总线适配器判断所述被踢除客户端的类型,如为本地客户端则执行步骤D3,如为远程客户端则执行步骤D4;
步骤D3:所述总线适配器将所述被踢除客户端的被踢除标志置位,将踢除成功的消息放入踢除客户端的消息队列中,返回步骤S4;
步骤D4:所述总线适配器使用踢除客户端消息封装所述被踢除客户端的名称和踢除客户端的名称,发送至所述被踢除客户端,返回步骤S4。
13.如权利要求9所述的方法,其特征在于,所述步骤S5还包括:当所述分布式消息类型为新客户端加入消息则执行步骤E1;
步骤E1:所述总线适配器判断新客户端的名称是否存在于保存的客户端列表中,是则执行步骤E2,否则执行步骤E3;
步骤E2:所述总线适配器向对应于新客户端对应的地址信息的总线适配器发送踢除该客户端的消息,返回步骤S4;
步骤E3:所述总线适配器将新客户端的名称保存至所述客户端列表中,使用***通知消息封装该客户端加入的消息,发送至所有本地客户端的消息队列中,返回步骤S4。
14.如权利要求9所述的方法,其特征在于,所述步骤S5还包括:当所述分布式消息类型为客户端断开消息则执行步骤F1;
步骤F1:所述总线适配器判断断开客户端的名称是否存在于保存的客户端列表中,是则执行步骤F2,否则返回步骤S4;
步骤F2:所述总线适配器判断所述断开客户端的类型,如为本地客户端则返回步骤S4,如为远程客户端则执行步骤F3;
步骤F3:所述总线适配器从所述客户端列表中删除断开客户端的名称,使用***通知消息封装该客户端断开的信息并保存至所有本地客户端的消息队列中,返回步骤S4。
15.如权利要求9所述的方法,其特征在于,所述步骤S3具体包括:
步骤G1:所述总线适配器侦听本地客户端套接字连接;
步骤G2:所述总线适配器接收所述本地客户端的套接字连接;
步骤G3:所述总线适配器提示用户输入客户端名称并等待接收;
步骤G4:所述总线适配器判断接收的客户端名称是否有效,是则执行步骤G5,否则返回步骤G3;
步骤G5:所述总线适配器判断所述接收的客户端名称是否存在于保存的客户端列表中,是则返回步骤G3,否则执行步骤G6;
步骤G6:所述总线适配器将所述接收的客户端名称保存到所述客户端列表中,使用***通知消息封装该客户端已加入的信息并保存至所有本地客户端的消息队列中;
步骤G7:所述总线适配器使用新客户端加入消息封装该客户端已加入的消息发送给所述除新创建之外的其他分布式节点;
步骤G8:所述总线适配器判断是否有用户输入,是则执行步骤G9,否则执行步骤G10;
步骤G9:所述总线适配器将用户输入的消息放到当前客户端的消息队列中,执行步骤G10;
步骤G10:所述总线适配器读取当前客户端的被踢除标志,根据被踢除标志判断当前客户端是否被踢除,是则执行步骤G11,否则执行步骤G12;
步骤G11:所述总线适配器通知当前客户端其已经被踢除,并强制结束当前客户端线程;
步骤G12:所述总线适配器从当前客户端的消息队列中读取一条消息,判断消息类型,如为***通知消息则执行步骤G13,如为本地客户端私有消息则执行步骤G14,如为本地广播消息则执行步骤G15,如为命令消息则执行步骤G16;
步骤G13:所述总线适配器打印所述***通知消息;
步骤G14:所述总线适配器打印所述本地客户端私有消息;
步骤G15:所述总线适配器打印所述本地广播消息;
步骤G16:所述总线适配器处理所述命令消息。
16.如权利要求15所述的方法,其特征在于,所述步骤G16具体包括:
步骤G16-1:所述总线适配器判断所述命令消息的类型,如为踢除指定名称的客户端消息则执行步骤H1,如为给指定名称的客户端发送消息则执行步骤I1,如为广播消息则执行步骤J1,如为退出总线***消息则执行步骤K1;
步骤H1:所述总线适配器判断踢除指定名称的客户端是否存在于保存的客户端列表中,是则执行步骤H2,否则返回步骤G12;
步骤H2:所述总线适配器判断踢除指定名称的客户端的类型,如为本地客户端则执行步骤H3,如为远程客户端则执行步骤H4;
步骤H3:所述总线适配器将踢除指定名称的客户端的被踢除标志置位,将踢除成功消息放入踢除客户端的消息队列中,返回步骤G12;
步骤H4:所述总线适配器使用踢除客户端消息封装踢除指定名称的客户端名称和踢除客户端的名称,发送至踢除指定名称的客户端,返回步骤G12;
步骤I1:所述总线适配器判断指定名称的客户端是否存在于保存的客户端列表中,是则执行步骤I2,否则返回步骤G12;
步骤I2:所述总线适配器判断指定名称的客户端的类型,如为本地客户端则执行步骤I3,如为远程客户端则执行步骤I4;
步骤I3:所述总线适配器将对话消息保存至指定名称的客户端的消息队列中,返回步骤G12;
步骤I4:所述总线适配器使用节点间通讯消息封装指定名称的客户端名称和对话消息,发送至指定名称的客户端,返回步骤G12;
步骤J1:所述总线适配器遍历客户端列表中所有的客户端,如客户端的类型为本地客户端则执行步骤J2,如客户端的类型为远程客户端则返回步骤G12;
步骤J2:所述总线适配器将所述广播消息保存至客户端的消息队列中,返回步骤G12;
步骤K1:所述总线适配器结束该客户端线程,返回步骤G12。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911337784.6A CN111130999B (zh) | 2019-12-23 | 2019-12-23 | 一种适用于分布式消息传输的方法及总线适配器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911337784.6A CN111130999B (zh) | 2019-12-23 | 2019-12-23 | 一种适用于分布式消息传输的方法及总线适配器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111130999A true CN111130999A (zh) | 2020-05-08 |
CN111130999B CN111130999B (zh) | 2021-08-31 |
Family
ID=70501198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911337784.6A Active CN111130999B (zh) | 2019-12-23 | 2019-12-23 | 一种适用于分布式消息传输的方法及总线适配器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111130999B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917394A (zh) * | 2010-06-13 | 2010-12-15 | 大连海事大学 | 在手机设备上进行数据共享的中间件***及工作方法 |
CN103379021A (zh) * | 2012-04-24 | 2013-10-30 | 中兴通讯股份有限公司 | 实现分布式消息队列的方法及*** |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅***及其工作方法 |
CN105338086A (zh) * | 2015-11-04 | 2016-02-17 | 浪潮软件股份有限公司 | 一种分布式的消息转发方法 |
CN107197015A (zh) * | 2017-05-23 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种基于消息队列***的消息处理方法和装置 |
US20180278551A1 (en) * | 2017-03-27 | 2018-09-27 | Dell Products, L.P. | Advanced message queuing protocol (amqp) message broker and messaging client interactions via dynamic programming commands using message properties |
CN109558789A (zh) * | 2018-10-09 | 2019-04-02 | 珠海亿联德源信息技术有限公司 | 一种基于分布式计算的生物特征快速识别*** |
-
2019
- 2019-12-23 CN CN201911337784.6A patent/CN111130999B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917394A (zh) * | 2010-06-13 | 2010-12-15 | 大连海事大学 | 在手机设备上进行数据共享的中间件***及工作方法 |
CN103379021A (zh) * | 2012-04-24 | 2013-10-30 | 中兴通讯股份有限公司 | 实现分布式消息队列的方法及*** |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅***及其工作方法 |
CN105338086A (zh) * | 2015-11-04 | 2016-02-17 | 浪潮软件股份有限公司 | 一种分布式的消息转发方法 |
US20180278551A1 (en) * | 2017-03-27 | 2018-09-27 | Dell Products, L.P. | Advanced message queuing protocol (amqp) message broker and messaging client interactions via dynamic programming commands using message properties |
CN107197015A (zh) * | 2017-05-23 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种基于消息队列***的消息处理方法和装置 |
CN109558789A (zh) * | 2018-10-09 | 2019-04-02 | 珠海亿联德源信息技术有限公司 | 一种基于分布式计算的生物特征快速识别*** |
Also Published As
Publication number | Publication date |
---|---|
CN111130999B (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101806257B1 (ko) | 가입 통지를 구현하기 위한 방법 및 장치 | |
JP2001168903A (ja) | すでに送信された電子メールを操作する方法および対応するサーバ | |
CN104811459A (zh) | 用于消息服务的处理方法、装置及***、消息服务*** | |
CN101317474A (zh) | 消息转换设备、***与转换方法 | |
CN110545206B (zh) | 一种时间触发网络中调度表生成的方法、装置及*** | |
US20010047390A1 (en) | Messaging system for computers | |
CN101686176A (zh) | 一种报文发送、接收的方法及装置 | |
CN111245776A (zh) | 车载数据传输方法、装置、设备和存储介质 | |
EP3979575A1 (en) | Message forwarding method, system, device, node device, and storage medium | |
WO2023221452A1 (zh) | 报文处理***、方法、设备和存储介质 | |
CN109379764B (zh) | 报文发送方法及装置 | |
CN102801737A (zh) | 一种异步网络通信方法及装置 | |
CN105635083A (zh) | 基于服务器和客户端架构的业务处理方法及业务处理*** | |
EP3174318A1 (en) | Method for realizing resource attribute notification, and common service entity | |
CN101571811B (zh) | 一种信息传输方法及装置 | |
WO2015168981A1 (zh) | 属性的操作方法及装置 | |
CN111130999B (zh) | 一种适用于分布式消息传输的方法及总线适配器 | |
JP2014123363A5 (zh) | ||
EP2448226A1 (en) | Mobile phone messages processing method and mobile phone | |
CN110688284A (zh) | 一种管理和监控RabbitMq消息队列的方法及*** | |
CN113890891A (zh) | 一种能源云网的数据共享交互方法和装置 | |
CN110858829A (zh) | 视频处理方法、装置、***、分析服务器及转码服务器 | |
CN100466635C (zh) | 一种发送消息的方法及装置 | |
WO2010015172A1 (zh) | 一种邮件转换、获取方法、邮件服务器、客户端及*** | |
CN114553956A (zh) | 基于uep中间件的数据传输方法和*** |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |