Я использую простой клиент MQTT в PHP — https://github.com/sskaje/mqtt — и хотите получить от брокера ровно одно сообщение (которое сохраняется — всегда там), а затем отобразить его на странице. Все работает хорошо, но я не могу заставить его отобразить всю страницу. Он отображает «Тестовый текст 1», затем код отладки, затем мое сообщение и останавливается там, не показывая ни «Тестовый текст 2», ни «Тестовый текст 3». Если бы кто-нибудь помог мне, я был бы невероятно благодарен, так как я понятия не имею, что не работает, и потратил много времени, работая над этим. Спасибо!
Test Text 1
<?php
require('spMQTT.class.php');
$mqtt = new spMQTT('tcp://127.0.0.1:1883/');
spMQTTDebug::Enable();
$mqtt->setKeepalive(5);
$connected = $mqtt->connect();
if (!$connected) {
die("Not connected\n");
}$topics['#'] = 0;
$mqtt->subscribe($topics);
$mqtt->loop('default_subscribe_callback');
$mqtt->unsubscribe(array_keys($topics));printf("Test Text 2");
/**
* @param spMQTT $mqtt
* @param string $topic
* @param string $message
*/
function default_subscribe_callback($mqtt, $topic, $message) {
printf("Message received: Topic=%s, Message=%s\n", $topic, $message);
break;
}
?>
Test Text 3
Я не знаком с этой библиотекой mqtt, но она очень похожа на вызов loop()
блокирует, так что вам придется подойти к проблеме по-другому.
Других решений пока нет …