MQTT RaspberryPi Broker
У меня есть небольшие сомнения по поводу использования MQTT в моем проекте. Я просто хотел узнать, возможно ли использовать RaspberryPi в качестве MQTT-брокера (сервера) для получения данных от устройства, которое публикует в MQTT, а затем одновременно этот RaspberryPi публикует те же данные в MQTT другому подписчику? Если это возможно, то каким будет брокер сообщений во второй части? Я имею в виду, я хочу, чтобы RaspberryPi был контроллером устройства (действующим на данных устройства) и в то же время публиковал данные другому подписчику MQTT. Это возможно?
Большое спасибо, Pouya
2 ответа
Протоколы Pub/ Sub, такие как MQTT, поддерживают подход "один ко многим" к доставке данных. Брокер является центральной точкой распространения данных и может обслуживать множество разных клиентов.
Когда клиент опубликовал сообщение, брокер доставит это сообщение всем клиентам, подписавшимся на тему, в которой публикуется сообщение.
Вы можете запустить несколько клиентов на одном компьютере, каждую публикацию, подписку или оба одновременно
Собственно, это то, что делает MQTT!
Если устройство A (издатель) публикует сообщение в теме, скажем: pi-topic/xxxx для MQTT Broker, работающего в Raspberry Pi. Затем вы просто заставляете устройство B (подписчик) подписаться / прослушать ту же тему, то есть pi-topic / XXXX. Таким образом, вы можете достичь этого. Вы можете использовать любую библиотеку, как Paho.
Вы должны прочитать далее о моделях PUB-SUB и механизме очереди. Это поможет в будущем.