logo好方法网

基于MQTT协议的通用网络通信系统


技术摘要:
本发明公开了一种基于MQTT协议的通用网络通信系统,包括移动应用侧、家庭智能终端侧和互联网侧,所述移动应用侧包括发送信息策略模块和MQTT客户端,所述家庭智能终端侧包括第一MQTT Broker消息服务器、MQTT服务端、接收信息过滤模块和业务处理模块,所述互联网侧部署有  全部
背景技术:
家庭智能终端,如智能音箱、路由器、机顶盒、智能家居网关等家庭固定场景内使 用的智能终端设备,此类设备通常使用嵌入式Linux操作系统,可以连接互联网,具备相应 的移动终端配套应用程序配合实现具体业务。 移动应用,运行在手机等移动终端上的应用程序,可以远程或本地控制家庭智能 终端设备实现其具体的业务,如控制智能音箱播放有声资源,控制路由器配置网络,控制机 顶盒进行虚拟遥控操作,控制智能家居子设备等。 MQTT(Message  Queuing  Telemetry  Transport,消息队列遥测传输协议),是一种 基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,可以以极少的代码和有限 的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通 讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。 MQTT  Broker(MQTT消息服务器),它是运行了MQTT消息服务器软件的一台服务器 或一个服务器集群。MQTT  Broker负责接收来自客户端的网络连接,并处理客户端的订阅/ 取消订阅(subscribe/unsubscribe)、消息发布(publish)请求,同时也会将客户端发布的 消息转发给其他订阅者。 目前常用做法为在互联网侧使用MQTT、WebSocket等协议进行移动应用与家庭智 能终端间的通信,局域网侧由于不存在NAT穿越的问题,直接使用TCP/UDP进行Socket编程 通信,这样实现由于使用的协议不同,导致在互联网及局域网侧通信需要分别使用不同的 实现方法,较大增加了程序的复杂度,降低了软件系统的可维护性,同时由于此种方法需要 根据本身网络状态进行通信路线决策,因而常常无法使每条信息可以动态选择最优的通信 路线。
技术实现要素:
为解决现有技术中存在的问题,本发明的目的是提供一种基于MQTT协议的通用网 络通信系统,本发明基于MQTT协议实现不同网络环境下的快速选择通信线路,使移动应用 可以在复杂多变的网络环境下保持与家庭智能终端高效且顺畅的通信,以满足其业务功能 的需要。 为实现上述目的,本发明采用的技术方案是:一种基于MQTT协议的通用网络通信 系统,包括移动应用侧、家庭智能终端侧和互联网侧,所述移动应用侧包括发送信息策略模 块和MQTT客户端,所述家庭智能终端侧包括第一MQTT  Broker消息服务器、MQTT服务端、接 收信息过滤模块和业务处理模块,所述互联网侧部署有第二MQTT  Broker消息服务器;其 中: 所述发送信息策略模块用于将移动应用发送的控制指令通过UUID函数生成通用 3 CN 111555945 A 说 明 书 2/4 页 唯一识别码,并与所述控制指令一起组成MQTT报文负载,同时获取家庭智能终端MAC组成 MQTT报文Topic,将MQTT报文传送给MQTT客户端; 所述MQTT客户端分别与所述第一MQTT  Broker消息服务器和第二MQTT  Broker消 息服务器连接,用于将收到的所述MQTT报文同时发布至第一MQTT  Broker消息服务器和第 二MQTT  Broker消息服务器; 所述MQTT服务端分别与所述第一MQTT  Broker消息服务器和第二MQTT  Broker消 息服务器连接,用于通过订阅所述家庭智能终端MAC获取移动应用发送的MQTT报文,并将 MQTT报文送往接收信息过滤模块; 所述接收信息过滤模块用于在收到所述MQTT服务端发送的MQTT报文后,解析出所 述通用唯一识别码,在缓存队列里判断该通用唯一识别码是否存在,如果存在说明已经通 过其他网络通信线路接收并处理了该消息,则丢弃本次MQTT报文;如果不存在说明本条消 息为最先到达的消息,将通用唯一识别码添加到缓存队列里,进而解析出控制指令发送给 业务处理模块; 所述业务处理模块用于接收信息过滤模块发送的控制指令,并进行相应的业务处 理。 作为一种优选的实施方式,所述第一MQTT  Broker消息服务器为使用mosquitto开 源软件运行嵌入式Linux操作系统的MQTT  Broker消息服务器。 作为另一种优选的实施方式,所述MQTT服务端获取移动应用发送的MQTT报文并将 MQTT报文送往接收信息过滤模块时,如果移动应用同时处于局域网及互联网状态下,接收 信息过滤模块顺序接收到2次同样的MQTT报文,则第一次到达的MQTT报文即为最优通信通 道传送的MQTT报文。 作为另一种优选的实施方式,所述缓存队列预设有固定的长度,当缓存队列中数 据溢出后删除最早插入的数据。 作为另一种优选的实施方式,所述第二MQTT  Broker消息服务器使用emqtt开源软 件进行部署。 本发明的有益效果是: 1、本发明无论在局域网或是互联网状态下,均使用同样的协议及方式进行通信, 因此在移动应用发送端与家庭智能终端接收端只用实现一套代码,即可自适应不同的网络 环境,极大降低了程序的复杂度及代码的编写难度,提高了系统的可维护性。 2、本发明无需移动应用与家庭智能终端判断自身的网络环境,即可动态选择每一 条通信指令的最快通道,使业务的响应速度达到最快。 3、本发明方案适用于任何使用嵌入式Linux操作系统的家庭智能终端设备。 附图说明 图1为本发明实施例的系统结构框图; 图2为本发明实施例中系统流程的程序时序图。
分享到:
收藏