我设法发表了几个主题,并阅读了其中一个。我需要做的是倾听和阅读所有已发表的主题,并获取信息。这是我使用的代码:
发布于 2017-09-13 07:26:39
您可以多次调用client.subscribe()函数来订阅多个主题。
另外,您应该将调用移动到订阅on_connect回调,以消除对第一个循环的需求。
#!/usr/bin/env python3
import paho.mqtt.client as mqttClient
import time
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("Connected to broker")
client.subscribe("topic/1")
client.subscribe("topic/2")
client.subscribe("topic/3")
client.subscribe("topic/4")
else:
print("Connection failed")
def on_message(client, userdata, message):
print("Message received : " + str(message.payload) + " on " + message.topic)
broker_address= "localhost"
port = 1883
client = mqttClient.Client("Python")
client.on_connect= on_connect
client.on_message= on_message
client.connect(broker_address, port=port)
client.loop_start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
print("exiting")
client.disconnect()
client.loop_stop()编辑:
您还可以一次订阅多个主题,语法如下
client.subscribe([("topic/1", 0), ("topic/2", 0), ("topic/3", 0),("topic/4", 0)])https://stackoverflow.com/questions/46191152
复制相似问题