Развертывание MQTT-сервера
Развертывание MQTT-сервера

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

Развертывание MQTT-сервера

Какие методы связи сегодня наиболее часто используются в Интернете вещей? РФ433/315М、Bluetooth、Zigbee、wifi、Ethernet и т. д.,Протоколы связи также делятся на множество типов в зависимости от различных функций.,Например, TCP, MQTT и т. д.,Конкретную информацию можно найти вhttps://blog.csdn.net/sinat_36098122/article/details/80930168 Исследовать。Сейчас я чаще используюMQTTпротокол,В основном он используется для связи с устройствами, которым необходимо экономить электроэнергию.,Передача сообщений в форме публикации/подписки,Подробную информацию см.https://www.cnblogs.com/skullboyer/p/9085210.html。 Для использования связи MQTT необходим сервер MQTT, который является ретрансляционной станцией (агентом) для передачи сообщений. Другими словами, сервер MQTT не хранит сообщения, а публикацию и получение сообщений выполняет клиент. В основном я пишу о построении двух MQTT-серверов, которые на данный момент более популярны: EMQ и Mosquitto. Оба сервера с открытым исходным кодом, и здесь написан способ их развертывания на Windows-сервере (другого способа сделать win, а потом поиграться с Linux у новичков нет).

1. Настройка EMQ

1,Загрузите EMQ. Перейдите прямо на официальный сайт, чтобы скачать,https://www.emqx.io/cn/downloads。EMQЭто платформа с открытым исходным кодом, разработанная китайской,Серверный фреймворк, разработанный на основе языка ErLang (я никогда раньше не слышал об этом языке),У меня нет другого выбора, кроме как стиснуть зубы и сделать это.)。Для развертывания на других платформах обратитесь к документации на официальном сайте.。 Выберите EMQ X Скачать Broker Здесь выбирается последняя версия. Установочный файл для версий после 3.0 — emqx. Название немного другое. Процесс установки тот же, но конфигурация внутри немного другая. об этом позже.

2. Установите EMQ. Здесь следует обратить внимание на проблему с версией. Если есть проблемы с установкой после версии 3.0, сначала установите Erlang/OTP R21+. Я не буду здесь вдаваться в подробности конкретного метода установки. . Вы можете спросить Ду Ньянга сами. Сначала разархивируйте файл в папку emqx. Откройте командное окно cmd, перейдите к пути к bin и введите emqx start (emqx — это исполняемый файл в bin). Если об ошибке не сообщается:

Затем снова введите статус emqx_ctl, чтобы проверить установку (не забудьте вернуться в каталог bin), и он покажет, что он запущен:

3.Консоль EMQ предоставляет серверную часть веб-управления. Порт по умолчанию — 18083. Откройте браузер и введите адрес http://127.0.0.1:18083. Имя пользователя по умолчанию — admin, а пароль по умолчанию — public. Вы можете увидеть интерфейс панели управления EMQ (если вы не привыкли к английскому интерфейсу, вы можете изменить настройки в Настройках). Консоль в основном может видеть некоторые состояния подключения клиента, такие как количество подключений, идентификатор клиента, подписанные сообщения, количество подписанных сообщений, опубликованные сообщения, количество опубликованных сообщений и т. д. Она также может контролировать работу плагина. в.

Если вы хотите изменить пароль для входа в Интернет или добавить пользователя (обратите внимание, что здесь добавляется пользователь веб-управления), вы можете добавить его в настройках «Пользователи».

В EMQ некоторые порты установлены по умолчанию, например 18083 для Dashboard, а другие: 1883 (MQTT Порт протокола) — это порт, используемый клиентом mqtt для подключения к серверу 8080 (HTTP); API Порт), это тоже важно и используется при изменении API 8883 (MQTT/SSL); порт 8083 (MQTT/WebSocket); порт)。具体各部分порт的使用可参照官方文档https://docs.emqx.io/broker/v3/cn/guide.html

4. Подключение клиента Сервер изначально настроен,Можно попробовать подключиться. Я использую клиентское программное обеспечение MQTTBox.,Это установлено по пути по умолчанию,Другие клиенты также будут работать。Скачать адресhttp://workswithweb.com/mqttbox.html

Затем проверьте подключение к серверу, нажмите Create MQTT Client для создания подключения и перейдите в интерфейс настроек:

Вы можете видеть, что существует множество настроек параметров. Здесь вам нужно только указать Имя клиента MQTT (имя клиента), Протокол (метод связи), Хост (адрес сервера mqtt). заполните 127.0.0.1:1883 Внешняя сеть Для подключения вам необходимо указать адрес публичной сети вашего собственного сервера), Будет – QoS (режим передачи mqtt, режим 0-2), Username и Password (имя пользователя и пароль) можно заполнять здесь или нет, т.к. на mqtt-сервере еще не добавлена ​​аутентификация подключения пользователя. О том, как настроить, я еще расскажу. это позже.

После настройки нажмите «Сохранить». Если значок состояния станет зеленым, это означает, что соединение установлено успешно.

Левая часть — это интерфейс публикации сообщений Pub, а правая — интерфейс подписки на темы (конечно, вы также можете открыть дополнительный клиент для публикации и подписки на темы соответственно). Сначала подпишитесь на тему и введите название темы, на которую вы хотите подписаться (правила для конкретных названий тем см. в документе протокола MQTT), а также метод связи mqtt:

Нажмите «ПОДПИСАТЬСЯ», чтобы подписаться, и вы увидите интерфейс с темой «zzz». Затем опубликуйте соответствующую тему «zzz» и нажмите «Опубликовать», чтобы отправить сообщение. (Обратите внимание, что методы связи для публикации и подписки должны быть одинаковыми для доставки сообщений)

Вы можете видеть, что интерфейс подписки получил сообщение о подписке. На этом предварительная настройка EMQ завершена, и следующим шагом будет внесение некоторых изменений в конфигурацию. Например, добавьте безопасное соединение для аутентификации, измените порт по умолчанию и т. д.

5. Изменение конфигурации (1) Настройте соединение для аутентификации пользователя. После установки сервера mqtt аутентификация соединения по умолчанию не включена. Это небезопасно, поэтому нам нужно добавить соединение для аутентификации. Методы аутентификации включают аутентификацию ClientId, аутентификацию по имени пользователя, аутентификацию по паролю, аутентификацию/контроль доступа MySQL и т. д., и эти функции можно включить в плагине веб-интерфейса управления (изменение атрибутов конфигурации необходимо изменить в файле ), здесь написано имя пользователя Сертификация. Сначала отключите функцию анонимного входа, откройте папку emqx/etc, а затем откройте файл emqx.conf! ! ! Здесь следует отметить одну вещь: возникнут проблемы при открытии операционной системы Windows с помощью встроенного в систему Блокнота или других встроенных редакторов (это тоже ловушка, с которой я столкнулся. Если проблем нет, просто притворитесь, что я этого не сделал). не упоминайте об этом). Вы можете использовать Open Notepad++, найти здесь параметрallow_anonymous = true, изменить значение true на false, то есть отключить анонимный вход. (Все равно рекомендуется сделать так, как я сказал, иначе в случае возникновения ошибки вам придется снова заменить файл .conf)

После внесения изменений закройте и сохраните. Затем откройте команду cmd, перейдите в каталог bin, введите emqx stop, чтобы выключить сервер, а затем откройте сервер в emqx start (сервер необходимо перезапускать каждый раз, когда конфигурация изменяется, чтобы она вступила в силу). В это время вы можете просмотреть состояние предыдущего клиентского подключения. Если вы видите, что соединение было отключено, настройка выполнена успешно.

Затем установите пользователя и пароль. Изменить файл конфигурации напрямую здесь невозможно. Это связано с тем, что после EMQ3.0 многие настройки плагина помещаются в API управления и мониторинга. (REST API),Доступ к REST API осуществляется через URL-адрес,адрес:127.0.0.1:8080/api/v3/。Здесь я хотел бы порекомендовать каждому инструмент веб-доступа.Postman(старый вопрос,Установите сами, хаха),проходитьPostmanИди направоREST API для работы.

Для входа в серверную часть API требуется пароль, поэтому перед работой войдите в веб-интерфейс управления, нажмите «Приложения», нажмите «+», чтобы добавить пользователя, и введите имя приложения для сохранения.

После создания представления вы можете увидеть, что есть нужные нам идентификатор и пароль (обратите внимание, что эта функция приложения должна быть включена, иначе в остальной фон API войти невозможно)

Выберите «Авторизация» и выберите «Базовая аутентификация» в раскрывающемся списке «Тип». Затем введите имя пользователя и пароль, используя AppID и Appsecrat, которые вы только что создали (просто скопируйте их), и, наконец, нажмите «Отправить», чтобы получить доступ.

Вы можете видеть, что в теле возвращается множество информации, каждая из которых представляет собой информацию API EMQ. Полезной информацией является имя API «имя», метод доступа «метод» и путь «путь».

После успешного возврата информации приступаем к установке нужных нам настроек имени пользователя и пароля.,Сначала откройте плагин emqx_auth_username в веб-интерфейсе управления.,затем вPostmanадрес栏中填写http://127.0.0.1:8080/api/v3/auth_username, Нажмите «Тело», выберите «Необработанный», введите имя пользователя и пароль, выберите метод доступа «POST» и нажмите «Отправить», чтобы получить доступ.

Если добавление прошло успешно, вы увидите код возврата: 0 ниже.

Измените метод доступа на GET и нажмите «Отправить», чтобы увидеть только что добавленного пользователя.

Вернитесь к клиенту MQTT, добавьте имя пользователя и пароль, которые вы создали в настройках, и вы увидите, что клиент снова подключается к серверу MQTT. На этом этапе все настройки для добавления соединений аутентификации пользователей на MQTT-сервер завершены.

6. Другие изменения конфигурации EMQ начинается с версии 3.0. Файлы конфигурации X в основном включают: etc/emqx.conf(EMQ X файл конфигурации сервера сообщений) и т. д./acl.conf (EMQ X Файл конфигурации правила ACL по умолчанию) и т. д./plugins/*.conf (EMQ X Различные файлы конфигурации плагинов), другие модификации конфигурации, включая модификации портов, плагины и т. д., здесь не описаны. Вы можете обратиться к официальным документам по настройке: https://docs.emqx.io/broker/v3/cn/

На этом этапе развертывание сервера mqtt EMQ в Windows завершено. Если возникнут какие-либо ошибки, сообщите нам об этом.

——————————————————Линия границы——————————————————

2. Развертывание «Москитов» 1. Москитная установка: Mosquitto — MQTT-брокер, реализованный на языке C.,Это легкий прокси,Таким образом, общее развертывание не представляет сложности.,Также поддерживает несколько платформ,Здесь я все же выбираю развертывание на windows. Сначала поговорим о предварительных условиях установки.,Для установки Mosquitto требуется среда Java.,Так что это та же старая поговорка(Ду Нианг хаха)。MosquittoСкачать адрес:https://mosquitto.org/download/,Выберите загрузку в соответствии с вашей системой.

После завершения загрузки откройте его и запустите напрямую. Просто следуйте инструкциям по умолчанию. Вы можете выбрать каталог установки самостоятельно (рекомендуется, чтобы путь к каталогу установки не содержал пробелов, в противном случае при последующей настройке может быть сообщено об ошибке). после установки). Если в процессе установки не сообщается об ошибке, то, скорее всего, Java настроена неправильно, просто начните с нуля.

После установки откройте службу Windows напрямую, найдите Mosquitto Broker и запустите службу Mosquitto.

Теперь агент от комаров установлен, все очень просто, правда?

2.конфигурация москита У Mosquitto нет такого интерфейса управления, как EMQ (он ведь легкий, он реализует более базовые функции сервера mqtt). Нам, конечно, этого достаточно. Файл конфигурации находится в файле mosquitto.conf в каталоге установки. По умолчанию сервер может работать с конфигурацией по умолчанию, а номер порта подключения — 1883.

3. Добавьте проверку входа пользователя. Откройте файл mosquitto.conf и добавьте в него следующий текст (здесь необходимо добавлять только при первом создании mosquitto)

Язык кода:javascript
копировать
allow_anonymous false 
password_file /mqtt/mosquitto/pwfile.example

allow_anonymous false относится к настройке, которая не разрешает анонимный вход в систему. /mosquitto/pwfile.example Это местоположение файла пароля учетной записи. Он записан в соответствии с каталогом установки. Например, мой путь установки — C:\. mosquitto После внесения изменений перезапустите службу mosquitto и введите cmd в каталоге установки. mosquitto_passwd -c /mqtt/mosquitto/pwfile.example zzz

Будет два ввода пароля (пароль не отображается). Параметр -c в команде означает очистку всех предыдущих пользователей и создание нового, поэтому его не нужно заполнять. После установки пароля пользователя подключитесь с помощью клиента MQTT.

На этом этапе можно собрать оба сервера MQTT.

(Первый блог закончен, я немного взволнован, ха-ха) ————————————————————————————————————

(Данная статья основана на личном опыте. При перепечатке просьба указывать источник. Если в статье есть поля, нарушающие авторские права, свяжитесь со мной для удаления.)

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/140206.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose