Я использую MQTT на моей малине и на Ubuntu. Я использую терминал для начала подписчика и издателя, и он работает так хорошо. Но сейчас я хочу создать сайт (используя laravel) с этими функциями. Я гуглил это, но я не нахожу ничего интересного. Можно ли это сделать и как?
В отличие от HTTP, MQTT обычно используется, открывая длительное соединение между процессом приложения и сервером MQTT.
Хотя вполне возможно открыть соединение, опубликовать одно сообщение, а затем снова закрыть сокет, на самом деле оно не работает для подписки на поток сообщений.
Типичный режим работы PHP — запуск процесса, ожидание HTTP-соединения, обработка запроса и запуск нового процесса. Это плохо сочетается с типичным режимом MQTT с длительным процессом.
Это начало меняться с людьми, использующими встроенный HTTP-сервер PHP. Я не уверен, что Laravel предоставляет механизм для сохранения переменных / TCP-соединений между обработками запросов.
В качестве альтернативы можно подписаться на тему MQTT в долгосрочном PHP-скрипте CLI и сохранить его локально (например, в базе данных, хранилище KV, memcache, redis), а затем обслуживать данные из хранилища данных.
Это зависит от того, чего вы пытаетесь достичь.
Других решений пока нет …