MQTT

MQTT是一种物联网轻量级的传输协议,是一种 发布/订阅 型消息协议,使用起来也是非常简单、快捷、稳定的。<!--more-->  
要使用MQTT协议来让设备相互关联起来,需要这么几步:

  • 搭建Broker(代理服务器)
  • 发送方Pub消息(发布)
  • 接收方Sub消息(订阅)

给我的感觉就是,MQTT和我在开发中使用的 基于类型的事件系统 一样,发送方只管发出消息,需要这条消息的接收方只需要注册就能收到这条消息,极大消除了耦合性。当然这只是在同一个系统中而言,而MQTT的范围则拓展到了设备与设备,即使不是同一个系统,都能这样使用。

1.搭建Broker

Broker搭建有很多,本文采用apache-apollo来搭建。  

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。