​​欢迎关注我的公众号 [极智视界],获取我的更多笔记分享​

  大家好,我是极智视界,本文带你实践 MQTT 协议。

  MQTT 协议是最受欢迎的物联网协议,已经广泛应用于车联网、智能家居、即时聊天应用和工业互联网等领域。目前通过 MQTT 协议连接的设备已经过亿,这些都得益于 MQTT 协议为设备提供了稳定、可靠、易用的通信基础。MQTT 是一个客户端服务端架构的发布 / 订阅模式的消息传输协议,它的设计思想轻巧、开发简单且规范、易于实现,这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如 机器与机器的通信 (M2M) 以及物联网环境 (loT)。这里带你实践一下 MQTT 协议,主要包括两个实践:(1) 把自己的 pc 当做 MQTT Client;(2) 在自己的 pc 上搭建 MQTT Broker。

文章目录

1 自己 pc 机当做 MQTT Client

  这个实践是这样的:自己的 pc 机 (单台机器或多台机器) 当做 MQTT Client,然也物联公用服务器作为 MQTT Broker,从而实践单 / 多 pc 机的 MQTT 通讯。示意如下:

极智开发 | 带你实践 MQTT 协议_websocket

  首先下载安装免费的 MQTT 客户端软件 MQTT.fx,下载地址:http://mqttfx.org

  通过 MQTT.fx 客户端,让我们的 pc 机器成为 MQTT Client 端。

  下面开始。

  • 建立新的 MQTT 连接;

极智开发 | 带你实践 MQTT 协议_客户端_02

极智开发 | 带你实践 MQTT 协议_websocket_03

  • 进行 MQTT 连接配置,配置完点击 ok 确认;

极智开发 | 带你实践 MQTT 协议_物联网_04

  • 点击 Connect 连接,绿色按钮说明已成功连接 然也物联公用 MQTT Broker,若要断开连接,点击 Disconnect 按钮;

极智开发 | 带你实践 MQTT 协议_网络协议_05

极智开发 | 带你实践 MQTT 协议_rabbitmq_06

  • 订阅主题,点击 Subscribe -> 输入主题名字 -> Subscribe;

极智开发 | 带你实践 MQTT 协议_客户端_07

极智开发 | 带你实践 MQTT 协议_物联网_08

  • 发布主题,点击 Publish -> 输入主题名字 -> 输入发布的消息 -> Publish;

极智开发 | 带你实践 MQTT 协议_物联网_09

  • 然后怎么知道发布的消息有没有收到呢,回到订阅 Subscribe 来看;

极智开发 | 带你实践 MQTT 协议_网络协议_10

  以上完成了单 pc 机器作为 MQTT Client,然也物联服务器作为 MQTT Broker,并进行通讯。自己发自己收都是在一台 pc 机器上完成,这有点无聊。 当然也可以多台 pc 机器作为 MQTT Client,比如你可以拿一台笔记本同样连接到 然也物联 MQTT Broker,然后对我们的主题 ​​test_0​​ 进行发布主题 Publish,在原来那台 pc 机器上的也能订阅到。这个操作方法和上面介绍的类似,就不多说了。



2 自己 pc 机上搭建 MQTT Broker

  这个实践是这样的:自己的 pc 机当做 MQTT Broker,同样把自己的 pc 机当做 MQTT Client,或把另一台笔记本电脑当做 MQTT Client,从而实践单 / 多 pc 机的 MQTT 通讯。示意如下:

极智开发 | 带你实践 MQTT 协议_websocket_11

  这里搭建 MQTT Broker 的机器主要还是指 Windows,这里用 Mosquitto 进行 MQTT Broker 的搭建。首先 Mosquitto 的下载地址:https://mosquitto.org/

极智开发 | 带你实践 MQTT 协议_网络协议_12

  安装成功后,进入到安装路径下,然后 右键 -> 在此处打开 Powershell,然后:

./mosquitto.exe -h     # 可以查看相应的帮助

# 开启 MQTT 服务,监听地址是 127.0.0.1,端口是 10086
./mosquitto.exe -p 10086

极智开发 | 带你实践 MQTT 协议_客户端_13

  以上就完成了在我们的 pc 机器上搭建 MQTT Broker (监听地址是 127.0.0.1,端口是 10086),然后即可在 pc 机器上进行 MQTT 通讯互联,MQTT 的通讯可以使用 MQTT.fx,操作方法和第一节的一致,唯一不同的就是把然也物联替换成我们这边构建的 MQTT Broker。这样就大功告成,既可以进行单机通讯 也可以进行 多机通讯。



  好了,以上分享了 MQTT 协议实践。希望我的分享能对你的学习有一点帮助。




极智开发 | 带你实践 MQTT 协议_websocket_14

微信公众号【极智视界】

极智开发 | 带你实践 MQTT 协议_rabbitmq_15