【问题标题】:Is there a way to use multiple feeds with Adafruit MQTT python client subscriptions?有没有办法通过 Adafruit MQTT python 客户端订阅使用多个提要?
【发布时间】:2018-07-03 03:48:34
【问题描述】:

我正在使用 Adafruit IO MQTT python 客户端来执行基于提要的代码。我希望一个提要执行一个功能,而另一个提要执行另一个。我查看了 this 并四处搜索,但没有找到显示如何订阅多个提要的内容。

【问题讨论】:

    标签: python mqtt feed adafruit


    【解决方案1】:

    您可以简单地多次调用subscribe,如下所示:

    for feed_id in ['feed1', 'feed2']:
      client.subscribe(feed_id)
    

    这是 MQTT 协议的一个基本特性。您的 on_message_ 处理程序将接收提要 ID 作为参数。

    【讨论】:

    • 谢谢。我仍然不太明白如何指定为给定的提要运行哪个函数
    • 您使用 on_message_ 处理程序中的 feed id 参数来确定要执行的函数。
    【解决方案2】:

    你必须自己构建它

    只需在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)
    

    【讨论】:

    • 我现在明白了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多