внедрение сервера MQTT, способного обслуживать веб-сайт - PullRequest
0 голосов
/ 11 мая 2018

короткий вопрос: Как я могу разместить сервер MQTT на моем удаленном сервере Ubuntu 16, одновременно размещая сервер HTTP, который будет использовать данные MQTT?

верный вопрос: Я хочу создать систему IoT, которая будет контролироваться и контролироваться ESP32, которая будет отправлять команды обратной связи и принятия команд соответственно с удаленного сервера (может быть, LAMP?). Я также хочу, чтобы пользователь выполнил вход на веб-сайте, размещенном на этом удаленном сервере, где он / она может отслеживать любые значения датчиков или отправлять команды (например, включать или выключать светодиод). Так какой путь сюда?

Мне посоветовали перейти с MQTT, но затем возникла вышеуказанная проблема.

что я нашел : я обнаружил, что с помощью Mosquitto MQTT я могу обслуживать веб-сайт с помощью веб-сокетов. Но я предпочитаю более масштабируемый подход HTTPS. То есть я намерен связать базу данных с моим сайтом и запустить мои PHP-скрипты.

Я не такой опытный, поэтому, пожалуйста, не принимайте ничего как должное:)

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

MQTT использует TCP-соединение и следует модели API публикации / подписки, где веб-интерфейс (http) следует модели API Restful (создание, чтение, обновление, удаление).Если вы хотите придерживаться MQTT, вам следует использовать сервис SAAS, например, корпоративный MQTT от HIVE , который обеспечивает эту интегрируемость, но будет взимать некоторые сборы, а взамен они предоставят вам учетную запись и информационную панель для всех вашихустройства.В противном случае вы можете попытаться создать собственное промежуточное программное обеспечение, которое может интегрировать MQTT с веб-службами.

Еще одна вещь, которую я бы порекомендовал, это CoAP , который также является протоколом M2M, но следует модели Restful API и UDPподключение.Он имеет прямой прокси-сервер прямого преобразования для преобразования пакетов coap в пакеты https и наоборот.

В MQTT у вас есть центральный сервер (брокер), на который узлы отправляют свои данные и извлекают необходимые данные через topic filters.

В CoAP каждое устройство, имеющее некоторые данные для совместного использования, становится сервером, а другое устройство, заинтересованное в его данных, становится клиентом и отправляет запрос GET на соответствующий сервер для получения своих данных.Аналогично, запрос PUT вместе с полезной нагрузкой от клиента будет обновлять значение на сервере.

0 голосов
/ 11 мая 2018

Вы действительно не должны пытаться объединить MQTT-брокер с HTTP-сервером, особенно если вы намерены использовать HTTP-сервер на самом деле как сервер приложений (запуск логики, например, PHP).Это две совершенно разные системы.Ничто не мешает вашей логике приложения подключиться к брокеру в качестве клиента.

Если вы намереваетесь использовать MQTT поверх WebSockets, вы можете использовать ссылку nginx для прокси соединения WebSockets с брокером, чтобы он мог находиться затот же логический адрес HTTP / HTTPS.

...