一种基于MQTT消息协议的能源控制器进程间的通信方法与流程

文档序号:31052466发布日期:2022-08-06 08:13阅读:来源:国知局

技术特征:
1.一种基于mqtt消息协议的能源控制器进程间的通信方法,其用于在能源控制器的各个进程间实现自由通信,其特征在于:所述通信方法的实施过程包括如下内容:系统构建阶段:构建一个包括mqtt客户端和mqtt服务器的进程间通信系统;所述mqtt客户端用于接收由各个进程生成的消息,并将消息发送到所述mqtt服务器;所述mqtt服务器用于对接收到的所有消息进行管理,并将消息推送给mqtt客户端中的目标进程;服务订阅阶段:以每个进程的名称作为消息订阅的主题类型,在所述mqtt服务器中预先建立各个进程对其它进程的信息订阅关系;并为每个进程设置一个广播消息的订阅状态;消息发布阶段:mqtt客户端收集各个进程发布的消息,然后为每条消息设置广播属性和优先级属性;并将消息发送到所述mqtt服务器;发布的消息中包含主题类型和消息内容;消息推送阶段:mqtt服务器先对接收到的所有消息进行解析,然后根据所有待推送的消息的接收时间和优先级属性确定各条消息的推送顺序,最后再根据每条消息的主题类型和广播属性,将消息内容推送到订阅该消息的目标进程处。2.如权利要求1所述的基于mqtt消息协议的能源控制器进程间的通信方法,其特征在于:在构建的所述进程间通信系统中,mqtt客户端为消息的发送方和接收方;mqtt服务器为消息的分配中转站;任意一个被传输的消息均由mqtt客户端中的其中一个进程发布,并被mqtt客户端中的一个或多个进程接收;消息的发送和接收过程采用异步模块,在不同线程中处理。3.如权利要求2所述的基于mqtt消息协议的能源控制器进程间的通信方法,其特征在于:在消息的发布阶段,还可以为每条消息设置一个发布服务质量,所述发布服务质量包括“至多一次”、“至少一次”和“只有一次”三种;所述mqtt服务器根据每条消息的发布服务质量属性确定消息的发布频次,以确保每条消息准确推送到目标进程。4.如权利要求3所述的基于mqtt消息协议的能源控制器进程间的通信方法,其特征在于:在三种发布服务质量中,“至多一次”指无论目标进程是否接收到推送的信息,mqtt服务器都仅推送一次当前消息;“至少一次”指无论需要推送多少次消息,mqtt服务器都要保证推送的消息被目标进程接收;“只有一次”指推送消息过程,mqtt服务器要保证目标进程接收且仅接收到一次推送的消息。5.如权利要求4所述的基于mqtt消息协议的能源控制器进程间的通信方法,其特征在于:在消息推送阶段,mqtt客户端在每个进程接收到由mqtt服务器推送的消息后,还向所述mqtt服务器返回一个消息送达指令。6.如权利要求1所述的基于mqtt消息协议的能源控制器进程间的通信方法,其特征在于:在消息推送阶段,在mqtt客户端中的任意进程因异常而断开连接之后,mqtt服务器自动向所有订阅该主题类型的进程推送相关的掉线信息;同时,在掉线进程重新上线之前,也向该进程的新增订阅对象推送掉线信息。7.如权利要求1所述的基于mqtt消息协议的能源控制器进程间的通信方法,其特征在于:在消息发布阶段,每条消息采用json格式进行传递,消息为一个包含“名称/值”的数据集;其中,“名称”指传输的消息的主题类型;“值”指传输的消息的实际内容,值中包含的数据为字符串、数组、数值、对象和空数据中的一种或任意多种。8.如权利要求1所述的基于mqtt消息协议的能源控制器进程间的通信方法,其特征在
于:所述mqtt服务器将接收到的待推送的消息存储在一个内存数据库中;当待推送的消息的数量超过1条时,针对未设置优先级属性的消息,mqtt服务器还通过sql语句查询的方式检索消息内容中的关键字,然后根据关键字对该消息与其它待推送消息的优先级进行重新排序。9.一种基于mqtt消息协议的能源控制器进程间的通信系统,其特征在于:其采用如权利要求1-8中任意一项所述的基于mqtt消息协议的能源控制器进程间的通信方法,在能源控制器中的任意进程间实现不定向的自由通信;所述通信系统包括:进程端和服务器端共两个部分;其中,进程端包括消息采集模块和消息接收模块;所述消息采集模块用于获取各个能源控制器中各个进程生成的待发布的消息,然后将发布当前消息的进程的名称作为当前消息的主题类型;并为每个消息设置一个广播属性和优先级属性,最后将包含消息内容、主题类型、广播属性和优先级属性的数据集发送到服务器端;所述消息接收模块用于接收由服务器端推送的消息;服务器端包括订阅管理模块、消息处理模块和消息推送模块;所述订阅管理模块用于为每个进程设置订阅的主题类型,订阅的主题类型反映了各个进程允许推送的消息源;同时还为各个进程设置一个广播消息的订阅状态;当某个进程订阅了广播信息后,则任意一个其它进程发布的广播信息均被允许推送至该进程;所述消息处理模块用于接收并解析由消息采集模块发出的数据集,然后根据消息的接收时间和优先级属性确定各条消息的推送顺序;所述消息推送模块用于根据每条消息的主题类型和广播属性,将各条待推送的消息的消息内容推送到订阅该消息的目标进程处。10.一种基于mqtt消息协议的能源控制器进程间的通信终端,其特征在于:其包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述程序时实现如权利要求1-8中任意一项所述的基于mqtt消息协议的能源控制器进程间的通信方法的步骤;进而在能源控制器中的任意进程间实现不定向的自由通信。

技术总结
本发明属于电力通信领域,具体涉及一种基于MQTT消息协议的能源控制器进程间的通信方法,以及实施该方法的系统和终端。该方法可以在能源控制器的各个进程间实现自由通信。通信方法的实施过程包括系统构建阶段、服务订阅阶段、消息发布阶段和消息推送节阶段。MQTT客户端为每个进程产生的消息内容设置好相应的主题类型、优先级属性和广播属性,然后发送到MQTT服务器上。MQTT服务器会将每个进程发布的信息采集过来,然后解析各条消息;接着先进行优先级排序,再检索出当前进程发布的主题内容的订阅方,并将当前消息的消息内容推送给订阅方。本发明解决了能源控制器进程间消息通讯效率低、传输可靠性低、程序耦合性高,二次开发难度大等问题。度大等问题。度大等问题。


技术研发人员:岳浩 蒋小三 张赢
受保护的技术使用者:安徽南瑞中天电力电子有限公司
技术研发日:2022.03.25
技术公布日:2022/8/5
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1