【技术实现步骤摘要】
一种基于MQTT协议的反向代理系统
[0001]本专利技术涉及内外网物联网管理系统间信息交付、反向代理
,尤其涉及一种基于MQTT协议的反向代理系统。
技术介绍
[0002]随着信息安全和网络安全的要求越来越高,特别是在学校内使用的物联网管理系统,都是部署校园网络中,只能在校内局域网使用,但是通过公网进行远程管理是刚需。
[0003]常见的内网穿透技术,比如SSH、花生壳、VPN等,都可以实现内网系统的服务映射到公网访问的效果,但是这些技术存在一些问题:比如系统资源开销过大、商用的费用过高、甚至因为网络安全原因被禁止使用等。
[0004]因此,需要有一个轻量级的技术来实现内网穿透,既能满足安全需求,又能将内网的接口反向代理到公网使用,还能够方便后续扩展。
技术实现思路
[0005]本专利技术的目的在于提供一种基于MQTT协议的反向代理系统,从而解决现有技术中存在的前述问题。
[0006]为了实现上述目的,本专利技术采用的技术方案如下:
[0007]一种基于MQTT协议的反向代理系统,包括公网和内网;
[0008]所述公网中部署有Broker集群和公网物理网系统,所述公网物联网管理系统作为Publisher接入到Broker集群中,同时作为公网Subscriber订阅一个回应消息的Topic;
[0009]所述内网中部署有内网物联网管理系统和代理模块,所述代理模块作为内网Subscriber接入到Broker集群中,且订阅内网物联网管理系统的Topi ...
【技术保护点】
【技术特征摘要】
1.一种基于MQTT协议的反向代理系统,其特征在于:包括公网和内网;所述公网中部署有Broker集群和公网物理网系统,所述公网物联网管理系统作为Publisher接入到Broker集群中,同时作为公网Subscriber订阅一个回应消息的Topic;所述内网中部署有内网物联网管理系统和代理模块,所述代理模块作为内网Subscriber接入到Broker集群中,且订阅内网物联网管理系统的Topic;通过该反向代理系统,公网能够直接访问内网HTTP服务;访问的具体过程为:S1、公网物理网系统负责对外提供统一业务,将HTTP请求消息基于MQTT协议通过Publisher发送到目标内网物理网系统的Topic,并且在该HTTP请求消息中指定回应消息的Topic,之后进入等待回应消息模式;S2、Broker集群接收到Publisher发送来的HTTP请求消息之后,将HTTP请求消息发送给代理模块;S3、代理模块在接收到Broker集群发送的HTTP请求之后,解析HTTP请求消息内容,并向内网物联网管理系统发起HTTP请求消息;S4、内网物联网管理系统收到HTTP请求消息后进行处理,并向代理模块返回处理结果;S5、代理模块接收到处理结果后,作为Publisher的角色向Broker集群发送一个回应消息,该回应消息的目的Topic为公网物理网管理系统发送的HTTP请求消息中携带的目的Topic;S6、Broker集群接收到Publisher发送来的回应消息后,将回应消息转发到公网Subscriber;S7、公网物联网管理系统接收到回应消息后,返回数据给前端;进而实现公网直接访问内网HTTP服务。2.根据权利要求1所述的基于MQTT协议的反向代理系统,其特征在于:采用Topic规则设计Topic,所述Topic规则具体为,将Topic设计为4级分层规则,每一层的定义为节点类型/消息类型/节点ID/消息ID;节点类型:用于区分该节点是内网物联网管理系统的节点、公网服务节点、设备节点;通过节点类型获知消息节点主体;消息类型:对于每个节点来说,将该节点接收到的所有消息,消息包括输入消息、输出消息和响应消息;节点ID:每个接入Broker集群的节点具有唯一的节点ID,通过节点ID进行唯一性识别,进而实现消息的定点发送;消息ID:表示Topic内承载具体消息的ID,通过消息ID能够明确消息的格式,从而进行业务处理;将消息ID放入Topic中,能够通过解析Topic识别消息函数的处理。3.根据权利要求2所述的基于MQTT协议的反向代理系统,其特征在于:消息类型中,输入消息:表示其他节点主动发给该节点的请求消息;所有的节点在接入Broker集群之后,都需要订阅Topic,从而订阅输入消息;输出消息:表示当前节点主动对外推送的消息;由于当前节点不关注是有其他节点关注这些信息,所以这些消息统一对外推送即可,由其他节点根据业务需求自行订阅输出消息;响应消息:表示当前节点主动请求其他节点后,其他节点回应的消息;所有响应消息统
一发布到Topic中,节点根据当前业务需求明确是否需要订阅响应消息。4.根据权利要求3所述的基于MQTT协议的反向代理系统,其特征在于:在所述MQTT协议中增加4字节的协议头,该协议头中包含协议头版本号、是否请求消息、消息SequenceID、消息处理错误码;协议头版本号:表示解析协议头的版本号,为后续调整协议头预留;是否请求消息:对于请求消息,需要将该bit位设置为1,对于回应消息,设置为0;消息SequenceID:表示同一个节点对外发送消息的序列号,每次发送消息的时候,自动加1,允许翻转;在收到请求消息并且处理之后,需要将回应消息的SequenceID设置为请求消息...
【专利技术属性】
技术研发人员:刘光华,汪洋,杨元松,
申请(专利权)人:深圳市艾迪思特信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。