ESP8266 家庭自动化项目中文版目录
Eclipse MosquittoTM是一个开源MQTT代理,它实现了MQTT v3.1和MQTT v.3.1.1标准,并提供了一种传输消息的轻量级方法,允许低功耗传感器,移动设备,嵌入式计算机和微控制器发布和订阅。
您可以直接从Linux存储库分发在Raspberry Pi或AWS实例或VirtualBox Linux实例上安装Mosquitto;或者,如果您需要websockets的支持,您可以获取源代码并自行编译。
从Linux分发存储库安装:
1.首次升级到最新版本:
sudo apt update && sudo apt upgrade
2.然后安装 mosquito:
sudo apt install mosquitto
您应该看到以下屏幕:

3.安装Mosquitto代理后,验证代理是否已启动并按如下方式安装mosquitto-clients:

4.键入以下命令:
sudo apt instal1 mosquitto-clients
您将看到以下屏幕:

Mosquitto客户有三个非常重要的实用程序:
- mosquitto_sub:一个简单的mqtt客户端,它将订阅一个主题并打印它收到的所有消息
- mosquitto_pub:一个简单的mqtt客户端,它将在单个主题上发布消息并退出
- mosquitto_passwd:一个管理Mosquitto密码文件的工具
使用其中任何一个--help选项(例如 mosquitto_sub --help)将提供一个包含可用于测试代理的所有选项的综合列表。安装完成后,Mosquitto即作为服务启动。并且正在监听端口1883.为了测试这个初始安装,让我们订阅一个主题并发布关于该主题的消息。以下命令中显示了使用 -t 选项订阅主题:
mosquitto_sub -t livingroom/temperature
运行此命令如下:
订阅主题,Observation(观察):此命令假定代理正在本地服务器上运行。如果您将Mosquitto部署到Internet 虚拟专用服务器(Virtual Private Server VPS)以进行订阅,请添加 -h 以指定服务器实例的IP地址(使用 ifconfig 查找它)以及端口 -p 1884(如果您未使用默认值1883)端口。在这种情况下,命令将是:
mosquitto_sub -h 46.102.34.87 -t livingroom/temperature
在另一个终端中,让我们在相同的 topic(主题) livingroom/temperature 上发布一些JSON格式的消息。使用以下命令几次并查看消息:
mosquitto_pub -t livingroom/temperature -m {"t":27.4}
您应该看到以下输出:

mosquitto_pub 发送消息后将退出。如果要每秒发送一次值,请使用 watch 实用程序,其中 -n 1 是命令之间的秒数:
watch -n 1 mosquitto_ pub -t livingroom/temperature m {"t":27 .4}
您现在可以使用订阅主题上的 +,# 进行锻炼 mosquitto_sub -t livingroom/# 将为您提供所有使用命令发送的数据:
mosquitto_pub -t livingroom/temperature -m {"t":27.4}
mosquitto_pub -t livingroom/humidity -m {"h":68}
你应该看到以下内容:

在主题中使用 +,订阅所有温度主题:
mosquitto_sub -t myhouse/+/temperature
并从其他终端发送消息,例如:
mosquitto_pub -t myhouse/living/temperature -m {"t":25.6}
mosquitto_pub -t myhouse/kitchen/temperature -m {"t":27.1}
在您订阅的终端中,您将看到以下所有消息: