Rabbitmq:在 MQTT 中监听

Rabbitmq: Listening in MQTT

在这里我将解释我想要的用例:

我应该收到多少条消息?我期望 1,但我得到 2,我不确定我测试是否正确,或者这是否是预期的行为。

提前感谢您的帮助

在围绕 RabbitMQ 设计的 AMQP 中,消息始终发布到 exchange,根据 路由键和绑定 进行路由,并且从 queue.

消耗

在 MQTT 中,消息被发布到 broker,根据 topics 路由并通过 subscription.

RabbitMQ MQTT plugin 将这些概念映射在一起:

  • MQTT broker 由单个 exchange
  • 模拟
  • MQTT 主题用作路由键
  • MQTT 订阅 是从交换到队列的绑定
  • 最后,每个 MQTT 客户端 都有一个队列,它可以从中接收其订阅的消息

这里的关键是,这些只是普通的 RabbitMQ 交换器和队列,用于模拟 MQTT 模型——消息可以由代理路由到任何队列,来自其他代理的消息可以路由到队列,而且它们不需要与您在 MQTT 中定义的主题相关。

因此,如果您手动将消息路由到特定 MQTT 客户端的队列中,RabbitMQ 会将其与该队列中的其他消息一起传送到客户端。客户端订阅的“主题”不会有任何区别,因为它仅用于在服务器上设置 binding