从MQTT代理获取消息会阻止页面工作

时间:2016-01-18 13:27:31

标签: php mqtt

我在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

1 个答案:

答案 0 :(得分:1)

我不熟悉那个mqtt库,但它看起来非常像对loop()的调用阻塞,所以你必须以不同的方式解决问题。