- How to Install The Mosquitto MQTT Broker on Linux
- Stopping and Starting
- Testing The Install
- Testing Using Mosquitto
- Starting Mosquitto Using a Configuration file
- Verbose Mode
- Mosquitto 2..0.2 and above
- Connection Limits
- Running Multiple Mosquitto Brokers
- Mosquitto Client Scripts
- Other Tools
- Установка и базовая настройка MQTT брокера Eclipse Mosquitto на Ubuntu | Debian
- Примечание для «Чайников»:
- Для обновления вашей системы (обновление пакетов), выполните:
- Устанавливаем MQTT брокера и клиента Mosquitto:
- Настроим для Mosquitto подписку по логину и паролю (пример для логина «huny»).
- Далее, по запросу, нужно будет ввести два раза ваш пароль для Mosquitto.
- Связка логин-пароль будет храниться по следующему пути — /etc/mosquitto/passwd
- Откроем файл, что бы убедиться, что пароль создан:
- Закроем файл, нажав CTRL + X
- Запретим анонимные подключения к Mosquitto. Открываем файл default.conf:
- Файл должен быть пустой, вставляем туда этот текст:
- Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
- Перезагружаем Mosquitto чтобы применить изменения:
- На этом этапе MQTT брокер Mosquitto у нас успешно запущен и защищён паролем.
- UPD1: Добавление / удаление пользователей в MQTT брокер (Mosquitto)
- Для примера добавим пользователя с логином huny2 и паролем parol2:
- Проверяем что добавился, открыв файл паролей.
- Закрываем файл, нажав CTRL + X
- Перезагружаем Mosquitto чтобы применить изменения:
- Удалить пользователя huny2:
- Проверяем, что действвительно удалён, открыв файл паролей:
- Закрываем файл, нажав CTRL + X
- Перезагружаем Mosquitto чтобы применить изменения:
- UPD2: Изменим порт MQTT брокера Mosquitto c 1883 на 8883 (пример), а 1883 привяжем к localhost (недоступен извне).
- Открываем файл default.conf:
- Добавляем туда следующее:
- Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
- Перезагружаем Mosquitto чтобы применить изменения:
- UPD3: Управление состоянием Mosquitto:
- Посмотреть текущий статус:
- Изменение статуса текущего сеанса:
- Для изменения состояния при запуске (не влияет на текущее состояние):
- Шлюзы Intel для интернета вещей: отправка сообщений MQTT-брокеру с использованием Python
- Mosquitto
- Python и MQTT
- Настройка компьютера
- Предварительные требования
- Установка Paho
- Тестирование Paho
- Настройка MQTT-брокера и подписки
- Использование существующего брокера, подключённого к локальной сети
- Paho: hабота с существующим брокером, доступным через интернет
- Установка MQTT-брокера в локальной сети с использованием Paho
- Установка MQTT-брокера в локальной сети с использованием Mosquitto
- Настройка шлюза
- Предварительные требования
- Установка Paho на шлюз
- Проверка работы c MQTT-брокером, размещённым в интернете
- Отправка и получение MQTT-сообщений
- Безопасность
- Создание и запуск скрипта на Python для публикации MQTT-сообщений
- Приём MQTT-сообщений на компьютере
- Итоги и идеи
How to Install The Mosquitto MQTT Broker on Linux
In this tutorial we will look at how you install and run the mosquitto MQTT broker on a Linux server running for example Raspberry Pi or Ubuntu.
Here are the steps I used on Ubuntu.
- sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
- sudo apt-get update
- sudo apt-get install mosquitto
- sudo apt-get install mosquitto-clients
- sudo apt clean
For Raspberry Pi the instructions are taken from here:
Then make the repository available :
Then , depending on which version of debian you are using:
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-buster.list
Then update apt information:
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
Upgrading on Pi
sudo apt-get install mosquitto
should update the existing installation but it may not upgrade as it is dependent on the repository which is different for the version of PI you are Running.
Stopping and Starting
Mosquitto is installed as a service and should start automatically after install
To Stop and start the service I needed to use
- sudo service mosquitto stop
- sudo service mosquitto start #see note later
Most sites I discovered where using the format.
- sudo /etc/init.d/mosquitto stop
However it seems newer installations use upstart initialization system instead of the init.d initialization system.
The stop/start scripts start the mosquitto broker in the background and also use the default mosquitto.conf file in the /etc/mosquitto/ folder.
The mosquitto binary is located in the /usr/sbin folder
If you want to see the control messages on the console then you need to start the mosquitto broker manually from a command line.
You first need to to stop the broker from running, and then type:
mosquitto -v
Testing The Install
To test it is running use command:
- netstat –at
You should see the Mosquitto broker running on port 1883 as shown in the screen shot above.
Below is a screen shot showing testing using the mqtt-ping command
Testing Using Mosquitto
If you are doing tests with mosquito then I recommend you stop the installed service and run mosquito manually from the command line.
If you do it this way you can create various configuration files for testing.
In addition, I would recommend you place the test configuration files and other files like password files in the local use folder as it avoids any permission errors, and they are easily edited without requiring root permissions.
Starting Mosquitto Using a Configuration file
The configuration file (mosquitto.conf) that comes with the install is mainly completely commented out as mosquitto doesn’t need a configuration file to start.
This file is loaded by the mosquitto when starting as a service.
Before you edit the default configuration file it is a good idea to create a copy of this file.
However I wouldn’t use this file as a basis for you own as if you do it is difficult to find any of you changes that a buried inside this file.
If you have done this then you might find my python configuration file tool useful.
To start mosquitto using a configuration file use the following command:
- mosquitto -c filename
You can find the mosquitto.conf template file in the /etc/mosquitto/ folder.
It is a good idea to create a copy of this file before editing it.
Note: For testing it is easier to use a configuration file in your home directory rather than the /etc/mosquitto folder as you need root permissions to edit files in this folder.
I use: /home/steve/mos/mosquitto.conf
Verbose Mode
This is useful for troubleshooting use
mosquitto -v
Mosquitto 2..0.2 and above
Mosquitto v2 introduced some important changes that affect first time users in particular.
By default it requires authentication and doesn’t listen on a network address.
The following simple configuration file will make mosquitto start like previous versions:
Connection Limits
You can limit the number of client connections in the mosquitto.conf file but the default configuration doesn’t impose limits.
However the OS does and it is 1024 for each user. This limit is the max number of open files allowed.
This can be changed for each user by editing the limits.conf file (/etc/security/limits.conf).
Note: You will need to restart the system for the setting to take affect
You can check the limits by using the ulimit -Sn (soft) or ulimit -Hn (hard command as shown above.
However this only affects mosquitto started from the command line. If you start mosquitto as a service then you need to edit the /lib/systemd/system/mosquitto.service file.
and adding the line
Note: You will need to restart the system for the setting to take affect
If you the go to the command line you can check the limits by getting the process id and using the command:
Running Multiple Mosquitto Brokers
You can configure a broker to listen on several ports, but to create multiple brokers with their own configurations then you will need to start multiple instances of mosquitto.
Examples:
Start mosquitto and listen on port 1883
mosquitto -p 1883
Start mosquitto as a daemon and listen on port 1884
mosquitto -p 1884 -d
Start mosquitto as a daemon and use the mosquitti-2.conf file.
mosquitto -c /etc/mosquitto/mosquitto-2.conf -d
Useful Linux Commands
To stop Mosquitto when running as a daemon:
ps -aux | grep mosquitto
pgrep mosquitto
kill -9 PID (that you get from above command)
Mosquitto Client Scripts
On Linux they need to be installed using
- sudo apt-get install mosquitto-clients
There is a simple subscriber client
mosquitto_sub
and a publisher client
mosquitto_pub
mosquitto_sub –help
They are useful for some quick tests and troubleshooting.
Other Tools
MQTTlens is also very useful for troubleshooting and quick testing. It is an add-on for the chrome browser.
It lets you publish and subscribe to topics using a web interface, and is much easier to use than the command line clients.
MQTT-Ping -Python Tool written by me that works like the traditional IP ping command tool.
Note: Starting will mosquitto version 1.6 mosquitto now supports MQTT v5.
Mosquitto Configuration Tutorials
Other Related Articles and Resources:
Источник
Установка и базовая настройка MQTT брокера Eclipse Mosquitto на Ubuntu | Debian
Eclipse Mosquitto — это брокер сообщений с открытым исходным кодом, который реализует протокол MQTT Mosquito легок и подходит для использования на всех устройствах, от одноплатных компьютеров с низким энергопотреблением до полноценных серверов…. Варианты установки на разные операционные системы кратко описаны на официальном сайте: https://mosquitto.org/download/
Примечание для «Чайников»:
Для выполнения некоторых команд в терминале могут понадобятся права администратора. Для этого просто наберите перед командой sudo :
Для обновления вашей системы (обновление пакетов), выполните:
apt-get update && apt-get upgrade -y
Устанавливаем MQTT брокера и клиента Mosquitto:
apt install mosquitto mosquitto-clients -y
Настроим для Mosquitto подписку по логину и паролю (пример для логина «huny»).
mosquitto_passwd -c /etc/mosquitto/passwd huny
Далее, по запросу, нужно будет ввести два раза ваш пароль для Mosquitto.
Связка логин-пароль будет храниться по следующему пути — /etc/mosquitto/passwd
Откроем файл, что бы убедиться, что пароль создан:
Закроем файл, нажав CTRL + X
Запретим анонимные подключения к Mosquitto. Открываем файл default.conf:
Файл должен быть пустой, вставляем туда этот текст:
Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
Перезагружаем Mosquitto чтобы применить изменения:
systemctl restart mosquitto
На этом этапе MQTT брокер Mosquitto у нас успешно запущен и защищён паролем.
UPD1: Добавление / удаление пользователей в MQTT брокер (Mosquitto)
Для примера добавим пользователя с логином huny2 и паролем parol2:
mosquitto_passwd -b /etc/mosquitto/passwd huny2 parol2
Проверяем что добавился, открыв файл паролей.
Закрываем файл, нажав CTRL + X
Перезагружаем Mosquitto чтобы применить изменения:
systemctl restart mosquitto
Удалить пользователя huny2:
mosquitto_passwd -D /etc/mosquitto/passwd huny2
Проверяем, что действвительно удалён, открыв файл паролей:
Закрываем файл, нажав CTRL + X
Перезагружаем Mosquitto чтобы применить изменения:
systemctl restart mosquitto
UPD2: Изменим порт MQTT брокера Mosquitto c 1883 на 8883 (пример), а 1883 привяжем к localhost (недоступен извне).
Открываем файл default.conf:
Добавляем туда следующее:
listener 1883 localhost
Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
Перезагружаем Mosquitto чтобы применить изменения:
systemctl restart mosquitto
UPD3: Управление состоянием Mosquitto:
Посмотреть текущий статус:
systemctl status mosquitto
systemctl status mosquitto.service
Изменение статуса текущего сеанса:
systemctl start mosquitto
systemctl stop mosquitto
systemctl start mosquitto.service
systemctl stop mosquitto.service
Для изменения состояния при запуске (не влияет на текущее состояние):
systemctl enable mosquitto
systemctl disable mosquitto
systemctl enable mosquitto.service
systemctl disable mosquitto.service
Данный MQTT брокер можно установить, например на Ubuntu 20.04 на бесплатном VPS сервере от Oracle:
Источник
Шлюзы Intel для интернета вещей: отправка сообщений MQTT-брокеру с использованием Python
- Установка на компьютер MQTT-клиента на Python.
- Настройка MQTT-брокера.
- Установка MQTT-клиента на шлюз, основанный на процессоре Intel Core, Atom или Quark.
- Создание и запуск скрипта, отправляющего MQTT-сообщения со шлюза брокеру, которые, в конечном счёте, поступят на компьютер.
Вот схема взаимодействия шлюза, MQTT-брокера и компьютера.
Взаимодействие шлюза, MQTT-брокера и компьютера
MQTT – это протокол обмена сообщениями, который можно использовать для передачи данных со шлюза на локальный или облачный сервер. Сервер перенаправляет данные удалённым клиентам, которые оформили подписку.
Вот, что можно узнать о MQTT из Википедии: «MQTT (ранее известный как MQ Telemetry Transport) это упрощённый сетевой протокол, работающий поверх TCP/IP. Он используется для обмена сообщениями между устройствами по принципу «издатель-подписчик». Протокол разработан для организации связи с удалёнными устройствами, для случаев, когда важно, чтобы код занимал как можно меньше места, а так же – для работы в сетях с небольшой пропускной способностью. Схема взаимодействия «издатель-подписчик» требует наличия брокера, посредника между передающей и принимающей сторонами. Брокер отвечает за доставку сообщений клиентам, которые в этих сообщениях заинтересованы, основываясь на темах сообщений и на оформленных клиентами подписках».
Существуют несколько программных пакетов для создания MQTT-брокеров. Они различаются по набору возможностей, в некоторых из них, поверх стандартного протокола MQTT, реализованы дополнительные функции. Вот сравнение нескольких брокеров.
Mosquitto
Mosquitto – это MQTT-брокер с открытым кодом (лицензия BSD), который реализует протокол MQTT версий 3.1. и 3.1.1. В этом руководстве мы будем рассматривать использование Mosquitto для разворачивания MQTT-брокера в локальной сети.
Python и MQTT
Язык программирования Python можно использовать для создания MQTT-сообщений. Выбор может пасть именно на Python если, например, код, написанный на этом языке, легко встроить в приложение, или если разработчик хорошо знаком с Python. Иногда этот язык удобно использовать из-за того, что программы, написанные на нём, не нуждаются в компиляции. Они интерпретируются на шлюзе во время выполнения.
Интерпретатор Python входит в стандартный набор предустановленного ПО на шлюзах Intel для интернета вещей, работающих под управлением Wind River Linux. Таким образом, Python-скрипты можно исполнять на шлюзах без дополнительной настройки рабочей среды. Так, интерпретатор Python 2.7.2 включён в Wind River Linux 5 и в Intelligent Device Platform XT 2. В Wind River Linux 7 и в Intelligent Device Platform XT 3.1 имеется Python 2.7.3 и 3.3.3.
Python-клиент Paho предоставляет класс клиента с поддержкой MQTT v3.1 и v3.1.1 на Python 2.7 и 3.1.1. Кроме того, он содержит некоторые вспомогательные функции, которые значительно упрощают публикацию MQTT-сообщений.
Настройка компьютера
Рассмотрим настройку компьютера, который планируется использовать для подписки на сообщения с некоей тестовой темой на MQTT-брокере в интернете. После того, как компьютер подпишется на тему, сообщения, опубликованные с этой темой, будут доставлены ему.
Для того, чтобы настроить компьютер, нужно будет, во-первых, установить Paho и сопутствующее ПО, во-вторых, протестировать систему, подключившись к брокеру.
Предварительные требования
Установка Paho
1. Загрузите tar.gz -архив со свежей версией Paho с eclipse.org. В нашем случае это был файл org.eclipse.paho.mqtt.python-1.1.tar.gz .
2. Поместите этот файл в выбранную директорию.
3. Распакуйте архив. Например, такой командой:
4. Содержимое архива окажется в папке, имя которой совпадает с его именем. Перейдите в эту папку, и, если нужно, переименуйте её.
5. Выполните следующие команды python:
Теперь Paho установлен на компьютере.
Тестирование Paho
Протестируйте Python-скрипт, использующий Paho, а заодно – и подключение к MQTT-брокеру, подписавшись на активную тему. Например, если вас интересует брокер, размещённый в интернете, для тестирования можно воспользоваться брокером test.mosquitto.org . Это позволит проверить и сетевое соединение, и работу программного обеспечения.
1. Перейдите в директорию с примерами для Paho:
2. Измените скрипт sub.py , отредактировав строки mqttc.connect и mqttc.subscribe :
Рассмотрим эти команды:
3. Запустите скрипт:
Если сетевое соединение и программа работают правильно, от MQTT-брокера test.mosquitto.org начнут поступать сообщения. Их содержание нас сейчас не интересует. Если ничего не приходит, проверьте как следует подключение к интернету и отредактированные строки скрипта sub.py .
4. Для остановки скрипта воспользуйтесь сочетанием клавиш Ctrl-C на клавиатуре.
Настройка MQTT-брокера и подписки
В предыдущем разделе мы установили на компьютере Paho и протестировали его работу. Теперь рассмотрим особенности MQTT-брокеров. Наша цель – работающий брокер, который может принимать сообщения от издателей и отправлять их подписчикам. Существует несколько вариантов организации взаимодействия с брокером, все они подходят для, того, чтобы воспроизвести то, о чём мы расскажем ниже.
- Уже настроенный брокер, расположенный в локальной сети или в интернете (в облаке). Такой подход позволит использовать существующий брокер. Этот брокер должен быть готов к приёму и отправке сообщений. При этом у вас должна быть возможность создавать на нём нужные темы, если таковые пока не созданы.
Новый брокер в локальной сети, созданный с использованием Paho. Этот брокер будет работать на компьютере. При этом, будет ли это тот же компьютер, который принимает сообщения от шлюза, или другой, особой роли не играет. Для создания брокера можно воспользоваться соответствующими библиотеками Paho для Python.
Использование существующего брокера, подключённого к локальной сети
Лучше всего, если у вас уже имеется MQTT-брокер, готовый к работе с приложением. Он должен располагаться в выбранной сети, должен быть готов отправлять и принимать сообщения для приложения, у вас должна быть возможность его настраивать. Если готовый к работе брокер у вас уже есть, можете сразу переходить к разделу этого материала, посвященному настройке шлюза.
Если брокер вы пока не настраивали, существует несколько способов обзавестись простым MQTT-брокером для тестирования приложения. Сейчас мы их рассмотрим. Обратите внимание на то, что здесь мы не касаемся вопросов настройки серверов или сетей. Кроме того, из приведённых ниже вариантов работы с существующими брокерами или способов настройки новых, вам понадобится лишь один. Поэтому, выбрав его и настроив систему, так же можете переходить к разделу о настройке шлюза.
Paho: hабота с существующим брокером, доступным через интернет
В интернете можно найти несколько MQTT-брокеров, которые подойдут для тестирования. Здесь мы воспользуемся брокером, доступным по адресу http://test.mosquitto.org/. Мы уже рассказывали о нём, тестируя правильность работы системы, не обращая внимания ни на темы, ни на сообщения. Сейчас используем его для более осмысленной работы и с тем, и с другим.
Процедура взаимодействия с данным брокером вам уже знакома, по разделу «Тестирование Paho». Однако здесь мы, вместо подписки на все темы командой mqttc.subscribe(«#», 0) , подпишемся на конкретную тему командой mqttc.subscribe(«mytopic», 0) . Здесь mytopic – это название MQTT-темы. Брокер автоматически создаст такую тему, если она ещё не существует.
Теперь, если шлюз (или любой другой компьютер) отправит брокеру сообщение с темой mytopic , брокер перешлёт это сообщение в окно терминала, в котором работает скрипт sub.py .
Установка MQTT-брокера в локальной сети с использованием Paho
Воспользуйтесь этим методом, если хотите, чтобы ваш компьютер играл роль MQTT-брокера, размещённого в локальной сети. Здесь нам понадобятся установленные ранее Python-библиотеки Paho. Процедура настройки, в целом, аналогична уже рассмотренной. Однако, нужно обратить внимание на то, что компьютер и шлюз должны быть в одной и той же локальной сети, и на то, что начало взаимодействия с брокером (в скрипте sub.py ) выглядит так:
То есть, подключаемся мы не к серверу в интернете, а к локальному хосту, к сетевому интерфейсу «внутренней петли» компьютера. Обычно localhost используется как псевдоним для IP-адреса 127.0.0.1.
Если подписаться на тему mytopic , обратившись к локальному хосту, автоматически будет запущен локальный MQTT-брокер и на нём будет создана такая тема. Если теперь шлюз опубликует сообщение с темой mytopic , обратившись к компьютеру по его IP-адресу, это сообщение будет отправлено в терминал Linux, в котором исполняется скрипт sub.py , оформивший подписку на эту тему.
Установка MQTT-брокера в локальной сети с использованием Mosquitto
Этот метод, снова, подразумевает использование компьютера разработчика в качестве брокера, размещённого в локальной сети. Но на этот раз мы будем пользоваться Mosquitto.
Подробности о Mosquitto можно узнать здесь. Кроме того, конструкция вида —help позволяет получать справку по командам этого пакета. Для того, чтобы запустить процесс MQTT-брокера на компьютере, выполните следующие шаги.
1. Откройте новое окно терминала Linux.
Брокер будет исполняться в этом окне, при этом на том же самом компьютере можно получать MQTT-сообщения, только приходить они будут в другое окно терминала.
2. Установите Mosquitto, если вы еще этого не сделали.
3. Создайте тему и подпишитесь на неё с помощью команды mosquitto_sub .
Рассмотрим эту команду:
4. Проверьте, подключён ли компьютер к той же локальной сети, к которой подключён шлюз.
Локальный MQTT-брокер запустится автоматически после оформления подписки на некую тему. Шлюз, обратившись к брокеру по IP-адресу компьютера, сможет публиковать сообщения с этой темой, которые попадут в терминал Linux, в котором исполняется mosquitto_sub .
Настройка шлюза
Займёмся настройкой шлюза. Она включает в себя два основных шага:
- Установка на шлюз MQTT-клиента, написанного на Python.
Предварительные требования
- В этом примере используется шлюз, который работает под управлением Wind River Linux 7 с Wind River Intelligent Device Platform XT 3.1. Если на вашем шлюзе используется другая ОС, процесс его настройки может отличаться от того, который приведён здесь.
Операционная система шлюза должна быть собрана с использованием параметра — withtemplate=feature/mqtt в настройках. Подробности об этом смотрите здесь.
Шлюз должен быть подключён к той же самой сети, что и MQTT-брокер, при условии, что брокер размещён в локальной сети.
Установка Paho на шлюз
Установка Paho на шлюз выполняется так же, как и установка на компьютер. Нужно скачать архив со свежей версией Paho, распаковать его и выполнить команду python setup.py install .
Проверка работы c MQTT-брокером, размещённым в интернете
Процедура проверки работоспособности ПО, установленного на шлюзе, и сетевого соединения, повторяет процедуру проверки компьютера.
Отправка и получение MQTT-сообщений
Теперь, когда у нас есть готовый к работе MQTT-брокер, настроены компьютер и шлюз, всё готово к тому, чтобы создать скрипт на Python, который будет заниматься публикацией сообщений.
Здесь мы воспользуемся образцами кода из поставки Paho для создания простого скрипта, который можно будет модифицировать позже в соответствии с нуждами конкретного проекта. Скрипт можно создать и непосредственно на шлюзе, и на компьютере. Если скрипт создан на компьютере, его надо будет скопировать на шлюз и запустить там.
Безопасность
Учитывайте следующие соображения при создании и запуске Python-скриптов.
- Если вы пользуетесь встроенным интерпретатором Python, IMA-безопасность не помешает, позволяя интерпретатору выполнять новые скрипты.
Если вы встроенным интерпретатором Python не пользуетесь, и, при этом, включена IMA-безопасность, каждый скрипт, перед запуском, необходимо подписать.
В примере, приведённом ниже, мы исходим из того, что ни IMA, ни белые списки на шлюзе не включены.
Создание и запуск скрипта на Python для публикации MQTT-сообщений
1. Перейдите в папку examples , содержащую образцы кода для Paho:
2. Скопируйте и переименуйте скрипт pub-single.py :
3. Отредактируйте файл my-pub.py , изменив его последнюю строку таким образом, чтобы сообщение отправлялось существующему MQTT-брокеру и при его отправке использовалась тема, которая была задана тогда, когда мы занимались настройкой компьютера на приём MQTT-сообщений (мы назвали тему «mytopic»):
Рассмотрим устройство этой команды:
Если в качестве брокера используется компьютер, сюда нужно подставить его IP-адрес в локальной сети. Например, что-то вроде 192.168.1.5. Если брокер находится в интернете, то здесь должен быть либо его IP-адрес, либо доменное имя сервера. Например, test.mosquitto.org .
4. Если подготовкой скрипта my-pub.py вы занимались на компьютере, скопируйте его на шлюз.
5. Запустите my-pub.py на шлюзе для передачи с него сообщения заданному MQTT- брокеру с темой mytopic :
Приём MQTT-сообщений на компьютере
После того, как шлюз опубликует сообщение с какой-нибудь темой, а брокер сообщение получит, он отправит сообщение всем MQTT-клиентам, которые подписаны на тему.
Для публикации, учитывая настройки нашего скрипта, достаточно выполнить на шлюзе команду python my-pub.py . При её выполнении сообщение «Hello» будет отправлено брокеру, а с него попадёт компьютер. На компьютере же, учитывая то, что на нём открыто окно терминала, ожидающее сообщений от MQTT-брокера, будет принято сообщение такого содержания:
Рассмотрим его структуру:
Итоги и идеи
Только что вы, используя язык программирования Python, отправили MQTT-сообщение «Hello» с темой «mytopic» MQTT-брокеру, расположенному в локальной сети, а затем приняли это сообщение на компьютере, который подписан на эту тему. Что дальше? Вот несколько идей, которые касаются развития примера из этого материала. Надеемся, они позволят вам расширить использование системы обмена MQTT-сообщения в ваших проектах.
- Если в системе имеются датчики, шлюз может считывать их показания и публиковать в виде MQTT-сообщений.
MQTT-сообщения хорошо походят для передачи неких сведений, предназначенных для хранения в облачной или локальной базе данных. Если этот сценарий соответствует системе, над которой вы работаете, рассмотрите его.
Увеличьте полезную нагрузку, которую несут сообщения, возможно – за счёт использования более сложной структуры сообщений и тем.
Поэкспериментируйте с функциями Paho, которые позволяют отправлять несколько сообщений одной командой.
Источник