我在 PHP 中使用一个简单的 MQTT 客户端 - 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()
的调用是阻塞的,所以你将不得不以不同的方式处理这个问题。