2016-12-19 64 views
0

我正在IBM Bluemix中開發一個應用程序。我有兩個碼頭工人將php docker連接到mqtt docker

  1. MQTT經紀人泊塢窗(https://github.com/mezz64/mqtt-broker-docker-image

  2. 基於PHP的阿帕奇泊塢窗(https://github.com/tutumcloud/apache-php

我有我的機器上的Python代碼,通過它我打算向Mqtt經紀人發佈消息。一旦發佈,我希望php docker訂閱Mqtt broker docker並顯示消息。

我試圖連接在PHP代碼給MQTT泊塢窗的地址如下,以MQTT從PHP泊塢窗經紀人:

$mqtt = new phpMQTT("169.44.113.133",1883, "PHPMQTTTrial"); //Change client name to something unique 

if(!$mqtt->connect()){ 
echo "failed"; 
    exit(1); 
} 
else 
{ 
echo "Success"; 
} 

$topics['ferries/IOW/#'] = array("qos"=>0, "function"=>"procmsg"); 
$mqtt->subscribe($topics,0); 

while($mqtt->proc()){ 

echo "hi"; 

} 


$mqtt->close(); 

function procmsg($topic,$msg){ 
     echo "Msg Recieved: ".date("r")."\nTopic:{$topic}\n$msg\n"; 
} 

但是,它無法連接。 有人可以指導並告訴我如何去做這件事?

+0

有什麼錯誤訊息? 你是如何啓動容器的(提供命令)? 我的猜測是,您必須將PHP容器鏈接到MQTT容器。 – Martin

+0

169.44.113.133從哪裏來?爲什麼不是容器名稱? – mustaccio

+0

@Martin它顯示的是空白頁面的php ip。 – Sid411

回答

-1
  1. 您需要創建一個網絡,兩個容器應使用--network的 同一網絡上運行。

  2. 代替IP和端口,只需在代碼中使用mqtt即可將 連接到mqtt容器。

確保當你運行它命名容器中加入--name mqtt和碼頭工人將做映射你