2016-01-18 80 views
0

我使用PHP中的簡單的MQTT客戶端停止頁頁。一切正常,但我無法讓它顯示整個頁面。它顯示「測試文本1」,然後調試代碼,然後顯示我的消息,並停在那裏,不顯示「測試文本2」和「測試文本3」。如果有人願意幫助我,我會感到非常感激,因爲我根本不知道,什麼都行不通,並花了很多時間去研究它。謝謝!充分利用MQTT經紀人的消息從工作

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 
+0

我不相信這將不斷努力,MQTT是異步的,沒有辦法保證期內MQTT經紀人將提供的任何信息,即'mqtt-> loop'正在運行的退訂處理之前。 – hardillb

+0

我知道MQTT並不意味着在這種情況下工作,但到目前爲止它工作。我只需要解決我的問題,其餘頁面不顯示:/ – RottInHell

回答

1

我不熟悉MQTT庫,但它看起來非常像調用loop()阻止,所以你必須以不同的方式處理這個問題。

相關問題