клиент mqtt на html-странице

#javascript #html #client #mqtt

#javascript #HTML #клиент #mqtt

Вопрос:

Я хочу иметь веб-страницу, которая может публиковать и подписываться на брокера mqtt. Я также хочу связаться с брокером, используя порт 1883, а не websoctets.

возможно ли это — у кого-нибудь есть какие-либо рабочие примеры.. Я настоящий новичок и признаю, что не до конца понимаю разницу между nodejs и javascript.

У меня создана html-страница, на ней установлен флажок, флажок установлен для переключения светодиода на esp8266 через брокера mqtt. после того, как я загружаю страницу — переключатель работает… но я бы хотел, как только я загружу веб-страницу, чтобы она проверяла состояние индикатора и отражала это в флажке. ie: когда я загружаю страницу, я вижу, включен или выключен индикатор.

У меня есть рабочий скрипт nodejs, который может публиковать запрос статуса на светодиод и подписывается на повторный запрос .. и он успешно получает ответ..

могу ли я каким-либо образом встроить этот скрипт в свою html-страницу таким образом, чтобы при загрузке он получал ответ от скрипта и устанавливал соответствующий флажок?

Я вижу несколько примеров java mqtt html-клиентов, но они, похоже, работают только с websockets. В моем проекте я не уверен, какие порты listner мне разрешено использовать для websockets (если таковые имеются), поэтому предпочел бы использовать порт mqtt 1883.

все мысли приветствуются, пожалуйста? Спасибо

Комментарии:

1. Пожалуйста, сделайте, как я просил, и задайте новый вопрос, не вносите существенных изменений в вопросы после того, как на них были даны ответы.

Ответ №1:

Если вы хотите подключиться к брокеру MQTT с веб-страницы, вы ДОЛЖНЫ использовать MQTT через Websockets. Изолированная среда Javascript в браузере не позволит вам сделать это каким-либо другим способом.

Вам нужно будет использовать брокер MQTT, который поддерживает MQTT через Websockets, и вам, скорее всего, потребуется настроить его для этого. Он должен быть подключен к отдельному порту 1883, поскольку он традиционно используется для встроенного MQTT.

Вы можете использовать либо библиотеку JavaScript Paho (https://www.eclipse.org/paho/index.php?page=clients/js/index.php ) или MQTT.js библиотека (https://www.npmjs.com/package/mqtt ) в браузере. Обе библиотеки поставляются с примерами.

Мы не будем просто приводить примеры здесь, в Stack Overflow, попробуйте использовать примеры, предоставленные библиотеками, и если вы застряли, откройте новый вопрос и покажите, что вы пробовали, и объясните, что не работает, и мы поможем вам это исправить.

Комментарии:

1. Привет, hardillb, я пытался добавить продолжение к вашему ответу, но, возможно, опубликовал его неправильно… смотрите мое продолжение в одном из ответов .. Я бы еще раз оценил ваши мысли, пожалуйста

2. Задайте новый вопрос и при необходимости обратитесь к этому. Я собираюсь проголосовать за удаление вашего «ответа»