首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python mqtt订阅多个消息

在 Python 中使用 paho-mqtt 库可以方便地订阅多个 MQTT 主题。以下是一个示例,展示了如何订阅多个主题并处理接收到的消息。

安装 paho-mqtt

首先,确保你已经安装了 paho-mqtt 库。如果没有安装,可以使用以下命令进行安装:

代码语言:javascript
复制
pip install paho-mqtt

示例代码

以下是一个完整的示例代码,展示了如何订阅多个 MQTT 主题并处理接收到的消息:

代码语言:javascript
复制
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()

代码解释

  1. 导入库: import paho.mqtt.client as mqtt
  2. 定义MQTT代理的地址和端口: MQTT_BROKER = "mqtt.example.com" MQTT_PORT = 1883
  3. 定义要订阅的主题: TOPICS = [("topic/one", 0), ("topic/two", 1), ("topic/three", 2)] 这里的 TOPICS 是一个包含多个元组的列表,每个元组包含主题名称和QoS(服务质量)级别。
  4. 定义回调函数
    • 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()}")
  5. 创建MQTT客户端: client = mqtt.Client()
  6. 设置回调函数: client.on_connect = on_connect client.on_message = on_message
  7. 连接到MQTT代理: client.connect(MQTT_BROKER, MQTT_PORT, 60)
  8. 启动客户端的循环: client.loop_forever()
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券