【发布时间】:2020-04-17 08:09:24
【问题描述】:
我正在使用 MQTT 来干扰我的网络中的消息,并且对向代理发布和订阅多条消息的最简洁方式有疑问。
首先,我有两个列表:
request_list = [('sensors/system/temperature', 0),
('sensors/system/gyroscope', 1),
('sensors/system/acceleration', 2)]
其中包含我必须将消息发布到的主题。
我的第二个列表定义了我想要发布的消息以及我想要获得回复的主题(== 我必须订阅才能获得答案的主题)。
request_value = ['{"response":"similarity/sensors/system/temperature","duration":"60s"}',
{"response":"similarity/sensors/system/gyroscope","duration":"60s"}',
'{"response":"similarity/sensors/system/acceleration","duration":"60s"}']
我的代理对于每个主题都是相同的,并在 PORT =“8083”上用 HOST =“192.168.137.1”定义。
现在我正在使用 for 循环,订阅一个主题,发布我的消息并等待消息进来。因为我必须等待每个订阅和发布才能成功,这非常耗时。我当前代码的伪代码如下所示:
list_measurments = []
for topic in request_list:
client.connect("Broker","Host")
client.loop_start()
client.subscribe("sub_topic")
client.pub("pub_topic","pub_message")
client.callback("append list_measurements")
client.loop_stop() #stop the loop
client.disconnect
我尝试在我的问题here 中使用线程,但事实证明,线程的正常使用是将相同的消息发布给许多不同的代理。我也想过multiple subscribtions。
如果有人能给我一个提示,最干净和最快的方法是什么,我将非常感激。
【问题讨论】:
标签: python performance mqtt publish-subscribe paho