Подпишитесь и опубликуйте сообщение через mqtt, используя Python
В этой статье я покажу вам, как использовать MQTT для публикации/подписки с использованием кода Python.
1. Настройте свой сервер MQTT
2. Установите клиентскую библиотеку MQTT для Python.
pip install paho-mqtt
2.1. Что такое пахо-mqtt
Этот код предоставляет класс, который позволяет приложениям подключаться к брокеру mqtt для публикации сообщений, подписки на темы и получения опубликованных сообщений. — пахо-мктт
В системе mqtt есть только mqtt-брокер (сервер) и несколько mqtt-клиентов.
Теперь у нас уже есть сервер (Mosquitto), работающий на нашем компьютере, если вы выполнили первый шаг. И теперь нам нужен клиент mqtt для публикации/подписки на сообщения в/из определенной темы. Таким образом, ваша программа Python будет клиентом mqtt.
3. Подпишитесь на тему
Когда клиент подписывается на тему, он в основном говорит брокеру отправлять ему сообщения, которые отправляются брокеру по этой теме. — пахо-мктт
3.1. Код
В большинстве примеров просто приведены некоторые коды, которые могут обрабатывать сообщения только из одной темы, что не так уж и хорошо. Потому что в большинстве случаев мы хотим обрабатывать разные сообщения из разных тем отдельно, например, использовать разные функции.
Таким образом, приведенный ниже код может не только обрабатывать сообщения из разных тем, но и работать бесконечно.
3.2. Некоторые функции необходимо понимать
loop_forever()
выше блокирует программу, а также обрабатывает автоматические переподключения. Если вы хотите, чтобы ваша программа работала бесконечно, попробуйте ее.
Да, loop_forever()
заставит нашу программу работать вечно, но заблокирует программу! Это означает, что другие коды ниже client.loop_forever
никогда не будут выполняться. Так что, если нам нужно отобразить данные на экране, для которого требуется while loop.
Это означает, что мы должны обрабатывать данные с сервера mqtt и одновременно отображать их на экране. А теперь нам нужна loop_start()
функция.
loop_start()
запускает новый поток, который через регулярные промежутки времени вызывает для вас метод loop(). Он автоматически обрабатывает повторные подключения.
4. Опубликовать сообщение
MQTT – это двоичный протокол, в котором элементами управления являются двоичные байты, а не текстовые строки. Названия тем, идентификатор клиента, имена пользователей и пароли кодируются как поток байтов с использованием UTF-8.
И вот оно. Спасибо за чтение.
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.