Существует 2 вида моделей сообщений:
Точка-точка (один к одному) - сообщение отправляется из одного приложения в другое приложение через очередь. Может быть более 1 приложения-получателя (получателя), но только одно из них получит сообщение.
Опубликовать / Подписаться - это место, где сообщение публикуется в теме, и несколько потребителей (подписчиков) будут каждый получать копию сообщения. Может быть 1 или более приложений, публикующих сообщения в той же теме, и 1 или более приложений, использующих (получающих) сообщения.
MQTT построен на модели обмена сообщениями публикации / подписки.
Ваше описание звучит так, как будто вы хотите, чтобы обмен сообщениями «точка-точка». Да, вы можете настроить MQTT так, чтобы он действовал как «точка-точка», но имейте в виду, что если у вас есть несколько приложений, публикующих сообщения на одну и ту же тему, вы можете запутаться.
MQTT_PATH = "test_channel"
publish.single(MQTT_PATH, "Hello World!", hostname=MQTT_SERVER)
В MQTT не существует такой вещи, как "канал". Ваш код публикует сообщение в теме с именем: test_channel.
Лучше использовать небольшую иерархию в именах тем.
т.е.
- пивк95 / еда / гамбургеры
- пивк95 / еда / картофель фри
- pivk95 / еда / пицца
- pivk95 / еда / буррито
- pivk95 / напиток / трясет
- pivk95 / напиток / soft_drink
Просто помните, что любое количество приложений может публиковать сообщения на заданную тему, а любое количество приложений может подписаться на данную тему и получать копии сообщений.