【发布时间】:2016-12-19 14:17:35
【问题描述】:
我正在 IBM Bluemix 中开发一个应用程序。我有两个码头工人
Mqtt 代理 docker (https://github.com/mezz64/mqtt-broker-docker-image)
基于 PHP apache 的 docker(https://github.com/tutumcloud/apache-php)
我的机器上有一个 python 代码,我打算通过它向 Mqtt 代理发布消息。发布后,我希望 php docker 订阅 Mqtt 代理 docker 并显示消息。
我正在尝试通过在 php 代码中提供 mqtt docker 的地址来从 php docker 连接到 mqtt 代理,如下所示:
$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";
}
但是,它无法连接。 有人可以指导并告诉我该怎么做吗?
【问题讨论】:
-
错误信息是什么?你是如何启动容器的(提供命令)?我的猜测是,您必须将 PHP 容器链接到 MQTT 容器。
-
169.44.113.133 是从哪里来的?为什么不是容器名称?
-
@Martin 显示 php ip 的空白页面。
-
@mustaccio ip 是 mosquitto docker 容器的地址。我尝试用 mosquitto docker 容器的名称替换它,但它显示的是空白页。
-
169.44.113.133 是一个全局路由的 IP 地址 - 你确定这是容器的 IP 地址吗?您是从哪里获得这些信息的?
标签: docker containers ibm-cloud