库的使用已经有人写的比较详细了,这里就借用了下人家写好的
https://blog.csdn.net/youshenmebutuo/article/details/79779387
现在网上已经很找不到了,我给大家上存到了云盘里,供大家下载,里面还有一些调试工具
链接:https://pan.baidu.com/s/1yez9rE-wEyZ4jT6bBq7XpA
提取码:jm03
复制这段内容后打开百度网盘手机App,操作更方便哦
例如我解压在D:\mqtt里
D:\mqtt\apache-apollo-1.7.1-windows-distro\apache-apollo-1.7.1\bin
apollo.cmd create mytest
创建好会在bin目录下创建一个名为mytest的文件夹,进入你文件夹的bin目录的终端
D:\mqtt\apache-apollo-1.7.1-windows-distro\apache-apollo-1.7.1\bin\mytest\bin
输入 apollo-broker.cmd run启动服务,启动好如图所示。
打开网页,输入ip + : 61680 进入后台管理 ,默认用户名admin 密码 password
例如 127.0.0.1:61680
建议再看订阅和发布的时候,把文章第一部分paho-matt库的使用看一下,对你代码的理解有很大的帮助
pip install paho-mqtt
import time
import paho.mqtt.client as mqtt
# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("连接成功")
print("Connected with result code " + str(rc))
def on_message(client, userdata, msg):
print(msg.topic + " " + str(msg.payload))
client = mqtt.Client(protocol=3)
client.username_pw_set("admin", "password")
client.on_connect = on_connect
client.on_message = on_message
client.connect(host="127.0.0.1", port = 61613, keepalive=60) # 订阅频道
time.sleep(1)
# client.subscribe("public")
client.subscribe([("public", 0), ("test", 2)])
client.loop_forever()
import paho.mqtt.client as mqtt
import time
import sys
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
def on_subscribe(client,userdata,mid,granted_qos):
print("消息发送成功")
client = mqtt.Client(protocol=3)
client.username_pw_set("admin", "password")
client.on_connect = on_connect
client.on_subscribe = on_subscribe
client.connect(host="127.0.0.1", port = 61613, keepalive=60) # 订阅频道
time.sleep(1)
i = 0
while True:
try:
# 发布MQTT信息
sensor_data = "test" + str(i)
client.publish(topic="public", payload=sensor_data, qos=0)
time.sleep(5)
i += 1
except KeyboardInterrupt:
print("EXIT")
client.disconnect()
sys.exit(0)
client.subscribe('public/+/#', qos=2)
可订阅到以下主题
public/1
public/2
public/2/2
client.subscribe('public/+, qos=2)
可订阅到以下主题
public/1
public/2
client.subscribe('public/#, qos=2)
可订阅到以下主题
public/1
public/2
public/1/2/2
public/1/2
client.subscribe('public/2/+, qos=2)
可订阅到以下主题
public/2/2
public/2/1
client.subscribe('public/+/2, qos=2)
可订阅到以下主题
public/2/2
public/1/2