MQTT是一种物联网轻量级的传输协议,是一种 发布/订阅 型消息协议,使用起来也是非常简单、快捷、稳定的。<!--more-->
要使用MQTT协议来让设备相互关联起来,需要这么几步:
- 搭建Broker(代理服务器)
- 发送方Pub消息(发布)
- 接收方Sub消息(订阅)
给我的感觉就是,MQTT和我在开发中使用的 基于类型的事件系统 一样,发送方只管发出消息,需要这条消息的接收方只需要注册就能收到这条消息,极大消除了耦合性。当然这只是在同一个系统中而言,而MQTT的范围则拓展到了设备与设备,即使不是同一个系统,都能这样使用。
1.搭建Broker
Broker搭建有很多,本文采用apache-apollo来搭建。
下载apache-apollo
下载JDK
- 配置JDK环境。网上一搜就是,此处略过。
- 解压刚才下载的apache-apollo,并在解压出来的文件夹中运行cmd命令:
apollo create myapollo E:\MQTT\apache_apollo\broker
上面的 E:\MQTT\apache_apollo\broker 可以替换成你自己的路径。结果如下图:

- 进入目录 E:\MQTT\apache_apollo\broker\bin,并执行cmd命令:
apollo-broker run
结果如下图:

- 浏览器输入:127.0.0.1:61680,用户名是admin,密码是password
- 将apache-apollo注册为windows服务(可选)
apollo-broker-service install
// 这样在windows的服务中就能看到此服务项了,下次需要使用的时候直接打开服务就行了。
- 修改或新增登录账号(可选)
//在create出来的etc目录下
groups.properties 用于增加用户
原本为: admins=admin
增加test用户: admins=admin|test(中间用|分开)
//////////////////////////////////////////////////////////////////////////////
users.properties 用于设置用户的账号密码
用户名=密码
原本为: admin=password
增加test用户: admin=password
test=test (新增一列,此处与groups.properties文件对应)
2.发送方Pub消息
此处使用MQTT.fx程序做演示,下载MQTT.fx程序。mqttfx-1.7.1-windows-x64.exe
安装完成后,打开MQTT.fx程序,如下图:

点击Connect按钮旁边的齿轮(设置)按钮,并修改 Broker Address 和 Broker Port 两项,如下图:

点Apply并OK。然后再点击Connect按钮,接着点击Publish一栏,并在输入框输入hello/world,在输入框下面的大框中随便输点什么东西,如下图:

3.接收方Sub消息
接着点击Subscribe一栏,在输入框中输入hello/world,并点击右侧的Subscribe按钮,最终如下图:

接着点回Publish一栏,点击Publish按钮;再切换回Subscribe一栏,就能看到刚才发送的消息了,如下图:

这里使用了同一个软件做演示,当然如果有其他的MQTT软件或调试工具的话,可以开多个工具来查看Publish和Subscribe。