创建多个MQTT客户端

时间:2019-07-25 11:50:53

标签: python mqtt

我有一个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()

有人有主意吗?

1 个答案:

答案 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()。

使用此版本,您可以构建主题列表(从数据库返回的内容),并一次传递要订阅的主题列表,而不是多次调用订阅。