我有一个MQTT代理和一个充满主题的数据库,我想订阅所有这些主题。 因此,我想从该数据库中获取每个主题,并使用MQTT对其进行订阅。但是我只能通过该数据库中的一个主题来做到这一点。
client = mqtt.Client("Client1")
client.message_callback_add(topic, on_message_message)
client.on_connect = on_connect
client.on_log = on_log
client.connect(mqttBrokerIpAddress, Port)
client.subscribe(topic)
client.loop_forever()
有人有主意吗?
答案 0 :(得分:0)
来自Paho Python docs:
SUBSCRIBE()
subscribe(topic, qos=0)
为客户订阅一个或多个主题。
可以通过三种不同的方式调用此函数: 简单的字符串和整数,例如
subscribe("my/topic", 2)
可以使用不同的主题多次调用。
字符串和整数元组,例如
subscribe(("my/topic", 1))
对您想做的事情并不真正感兴趣。
字符串和整数元组的列表,例如
subscribe([("my/topic", 0), ("another/topic", 2)])
这允许在单个SUBSCRIPTION中订阅多个主题 命令,比使用多次调用更有效 subscription()。
使用此版本,您可以构建主题列表(从数据库返回的内容),并一次传递要订阅的主题列表,而不是多次调用订阅。