【问题标题】:Subscribing to multiple publishers through MQTT broker using NodeMCU board使用 NodeMCU 板通过 MQTT 代理订阅多个发布者
【发布时间】:2018-05-02 07:47:02
【问题描述】:

我有几个关于这个主题的问题,所以我会把它们一起发布在这里,否则我必须就不同的问题单独发布。 场景是我有 NodeMCU 板,我将使用它通过 MQTT 代理(MQTT 盒)接收来自多个发布者的多条消息。以下是我需要澄清的查询,我还没有实现,我只是在形成逻辑。假设我将通过 MQTT 代理连续接收来自 4 个 NodeMCU 板的消息,然后我将其发送到服务器进行存储,问题是

  • 在我将它们存储到服务器之前,1 个发布者的消息会覆盖另一个发布者的消息吗?

  • 来自MQTT代理的消息,是存储在NodeMCU板的ROM还是RAM中?

  • MQTT 代理能否同时将来自 2 个发布者的数据发送到同一个 NodeMCU 板?

帖子一团糟,对此感到抱歉。

【问题讨论】:

    标签: mqtt publish-subscribe nodemcu


    【解决方案1】:

    快速回答:

    • 如果 2 个发布者针对同一主题发布消息,则消息将按发布顺序传递给该主题的任何订阅者。所以发布者 1 的消息会到达,然后是发布者 2 的消息。由于消息是按顺序接收的,因此您不应丢失一条消息,因为它会被下一条消息打断。

    • 到达的消息在传递时将在 RAM 中

    • 代理只是将消息传递给订阅主题的任何客户端,客户端甚至不知道有多个发布者(MQTT 消息中没有发布者特定信息),只是它接收到多个消息具体话题

    【讨论】:

    • 如果 2 个出版商在 2 个不同的主题上发表文章怎么办?并且 1 个 nodemcu board 订阅了这 2 个主题,在那种情况下会发生什么?
    • 它们仍然由经纪人按顺序交付
    • 如果两个不同的发布者,作为两个独立的进程运行(即使在同一台机器上),您无法知道调度程序接收消息的顺序(即使它们是发出的)同时”)。因此,您所说的唯一细微差别是,当发布者是不同步的并行进程时,不能保证顺序。
    • 它们将按照经纪人收到的顺序交付
    • 所以据我了解,没有数据丢失的情况,这意味着保留内存,我所要做的就是在最后一个有效负载之后调用某种清除函数来清除 RAM交付。对吗?
    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多