实验介绍
Mosquitto 是一个开源的轻量级的MQTT broker, 各种平台都支持, 本实验旨在熟悉MQTT客户端(发布者,订阅者)跟服务器(Broker)之间的交互,
以加深对MQTT 三个角色之间信息交互的理解
实验环境搭建
实验需要一台服务器和一部手机。 笔者使用的是MACbook pro 和一台苹果手机。 MAC需要安装最新版本的抓包软件Wireshark
实验步骤
- 1 安装Mosquitto 使用brew 在MAC上安装 mosquitto
安装命令为:
brew install mosquitto
启动:
brew services start mosquitto
- 2 手机安装MQTT工具,推荐 MQTTool
- 3 打开Wireshark , 过滤器使用 mqtt
- 4 确保服务器MAC和电脑在同一个局域网内, 在MQTTool 输入正确的地址, 然后点击Connect , 抓取连接的过程报文
- 5 抓取Disconnet 报文
Disconnect只有客户端发一个Disconnect Req 报文,无ACK
- 6 抓取发布主题报文
从MQTTool 发布主题
- 7 抓取订阅报文
- 8 取消订阅报文
- 9 Broker转发已订阅消息
在MAC上用下面命令发布消息,然后抓包,可见Broker 是以单播的方式给订阅用户传送消息。
mosquitto_pub -t sensors/temperature -m 36