在 Python 中使用 paho-mqtt
库可以方便地订阅多个 MQTT 主题。以下是一个示例,展示了如何订阅多个主题并处理接收到的消息。
paho-mqtt
库首先,确保你已经安装了 paho-mqtt
库。如果没有安装,可以使用以下命令进行安装:
pip install paho-mqtt
以下是一个完整的示例代码,展示了如何订阅多个 MQTT 主题并处理接收到的消息:
import paho.mqtt.client as mqtt
# 定义MQTT代理的地址和端口
MQTT_BROKER = "mqtt.example.com"
MQTT_PORT = 1883
# 定义要订阅的主题
TOPICS = [("topic/one", 0), ("topic/two", 1), ("topic/three", 2)]
# 定义回调函数,当客户端连接到代理时调用
def on_connect(client, userdata, flags, rc):
print(f"Connected with result code {rc}")
# 订阅多个主题
client.subscribe(TOPICS)
# 定义回调函数,当客户端接收到消息时调用
def on_message(client, userdata, msg):
print(f"Received message from topic {msg.topic}: {msg.payload.decode()}")
# 创建MQTT客户端
client = mqtt.Client()
# 设置回调函数
client.on_connect = on_connect
client.on_message = on_message
# 连接到MQTT代理
client.connect(MQTT_BROKER, MQTT_PORT, 60)
# 启动客户端的循环,处理网络流量和回调
client.loop_forever()
TOPICS
是一个包含多个元组的列表,每个元组包含主题名称和QoS(服务质量)级别。on_connect
:当客户端连接到代理时调用。此函数订阅了多个主题。
def on_connect(client, userdata, flags, rc): print(f"Connected with result code {rc}") client.subscribe(TOPICS)on_message
:当客户端接收到消息时调用。此函数打印接收到的消息。
def on_message(client, userdata, msg): print(f"Received message from topic {msg.topic}: {msg.payload.decode()}")领取专属 10元无门槛券
手把手带您无忧上云