【问题标题】:Is the Single Call, Multiple Answer Pattern possible with Request/Response in MQTT?MQTT 中的请求/响应是否可以实现单呼叫、多应答模式?
【发布时间】:2019-07-24 10:40:31
【问题描述】:

在单呼叫多应答模式中,您可以发送一个请求并收到多个对此请求的响应。一个 mqtt 客户端可以发送一个带有响应主题和一些相关数据的请求。一个客户端可以用多个响应来回答这个请求(每个响应都包括第一个也是唯一一个请求的相关数据),还是协议错误?

【问题讨论】:

    标签: mqtt request-response


    【解决方案1】:

    MQTT 是一个Publish/Subscribe protocol,与requenst/response protocols 非常不同,比如HTTP

    经纪人是所有客户的中间人。它将发布的消息分发给订阅其主题的所有客户端。

    所以你可以做的是让客户端“Master”发送到主题“REQUEST/”并让你的所有从属程序订阅该主题。如果他们收到一条消息,他们可以将他们的响应发布到 master 订阅的“RESPONSE/”。主节点将为到达其先前订阅的主题的每条消息调用其 on_message 回调。

    有关示例,请参阅您选择的实现的 github。这是eclipse-paho-python-github

    编辑:

    对于 MQTT5,添加了 response-topic-property。在这里,发布者/请求者可以传递有关在何处发布响应的信息,而不是将其编码到有效负载中,这是现在的方式。它似乎并没有真正改变工作流程。而不是响应者硬编码他们的主题或从负载中读取它,他们可以将其提取为他们收到的消息对象的一部分。

    【讨论】:

    • 在 MQTT 5 中,您可以使用请求/响应模式。您可以发送带有响应主题和一些相关数据的请求。接收者发送关于响应主题的响应并将相关数据添加到消息中。这在 MQTT 5 中是可能的。我的回答是,如果您可以使用此相关数据发送多个响应
    • 哦,我还不知道 mqtt5 有什么好的实现。你可以链接任何吗?我更新了我的答案。
    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 2019-10-27
    • 2020-05-10
    • 2011-03-04
    • 2020-06-21
    • 2021-04-15
    • 1970-01-01
    • 2017-08-30
    相关资源
    最近更新 更多