【发布时间】:2018-07-03 03:48:34
【问题描述】:
我正在使用 Adafruit IO MQTT python 客户端来执行基于提要的代码。我希望一个提要执行一个功能,而另一个提要执行另一个。我查看了 this 并四处搜索,但没有找到显示如何订阅多个提要的内容。
【问题讨论】:
我正在使用 Adafruit IO MQTT python 客户端来执行基于提要的代码。我希望一个提要执行一个功能,而另一个提要执行另一个。我查看了 this 并四处搜索,但没有找到显示如何订阅多个提要的内容。
【问题讨论】:
您可以简单地多次调用subscribe,如下所示:
for feed_id in ['feed1', 'feed2']:
client.subscribe(feed_id)
这是 MQTT 协议的一个基本特性。您的 on_message_ 处理程序将接收提要 ID 作为参数。
【讨论】:
on_message_ 处理程序中的 feed id 参数来确定要执行的函数。
你必须自己构建它
只需在on_message 回调中添加一条 if 语句,即可根据主题(feed_id)选择不同的函数,例如
def message(client, feed_id, payload, retain):
if feed_id == 'foo/bar':
#call foo function
foo(paylaod)
elif feed_id == 'bar/foo':
#call bar function
bar(payload)
【讨论】: