MQTT测试
MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。 它的设计思想是轻巧、开放、简单、规范,易于实现。 这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。
MQTT 服务器有多种,其中功能比较齐全的推荐有mosquitto,emqttd,Apache Apollo。其中安装mosquito过程中windows 存在各种异常,最后未搭建成功,改为选择emqttd 方式。
EMQTT 服务器搭建
1. 下载windows安装源页面 http://emqtt.com/downloads
2. 下载完成后解压,进入目录 \emqttd\bin
3. 分别命令执行,启动MQTT服务器 emqttd console emqttd install
emqttd start
4. 启动浏览器访问网页
特别说明,在执行命令后,注意防火墙选择允许访问方式。三条命令运行完成后,会自动处于运行状态。保持当前窗口,然后启动浏览器访问http://127.0.0.1:18083 (默认账户用户名:admin,密码public)服务器地址可修改,默认为本地回环ip地址127.0.0.1
客户端工具配置
客户端工具较多,下文主要介绍windows常见的MQTT.FX 和MQTTBox两种客户端,使用过程中二选一即可。
MQTT.FX 配置
1. 下载软件,国内地访问下载需要VPN FQ。安装软件如下图
2. 点击设置按钮,配置相应的选项,再点击connect 连接至服务器(默认情况下不需要配置)
3. 选择本地服务器localmosqultto默认配置
4.如果测试远程,在设置中选择M2M Ecipse,并在Broker Address中设定远程地址
MQTTBox 工具配置
除了MQTT.FX,还可以选择MQTTBox, 相关windows 详细如下 http://workswithweb.com/mqttbox.html
1. 安装MQTTBox后启动MQTTBox,菜单栏中选择“Ceate MQTT Client”
2. 在配置选项中,设置如下默认配置,指定服务器地址127.0.0.1,登陆账户密码自设定
3. 进入刚已创建的客户端,点击连接(步骤1)查看连接状态,绿色connected显示当前成功连接服务器。
4. 分别建立publisher 发送端 和 subscriber 收取端。下图仅方便演示,将发送和接收窗口合并在一个客户端,但实际测试或应用中,下图步骤2 和 下图步骤3 应分别在两台设备电脑A和电脑B上,详细见下节测试搭建。
5. 为了测试当前环境状态,可以模拟客户端判断环境是否正常。点击Subscribe(上图步骤4)后,再点击
Publish(上图的步骤5)。payload 的数据选择json或字符串等形式,如实例中的JSON {“hello”:“world”}
6. 在发出publish后,右侧Subscriber框立即收取到刚实例中的“hello world”字串。至此,验证客户端搭建验证完成。
MQTT测试
1. 环境搭建
测试本地环境时,本地网络拓扑图如下
另外补充说明,若是远程服务器,只需修改PC server的IP地址配置为外网地址。如果是测试路由器链路,还可简化一台电脑和一台测试路由器的环境搭建方式。使用本地127.0.0.1 作为服务器,整体配置原理如下图
2. 在客户端上添加Subscriber,此时服务器里已经连入2台设备,此两台设备可以通过服务器来实现通信因此2个订阅加入此列表,即此时服务器里已经连入2台设备,此两台设备可以通过服务器来实现通信
3. 测试路由器客户端。配置服务器地址本地分配地址(路由器实际分配地址),将路由器作为客户端
4. 可直接在串口命令 输入 simple_publisher 192.168.0.2 1883 string {\'hello\':\'world\'},在客户端 subscriber中收取正确信息