我CloudMQTT
在MQTT broker
基于 Pub-Sub 的应用程序中使用它。我正在使用 mypublisher
向平台发布数据,并计划CloudMQTT server
在我的网页上向代理接收传输的信息。topic
subscribe
我正在使用此过程创建一个Client
(订阅者):https ://www.cloudmqtt.com/docs-php.html
代码如下:
// subscribe.php
require("phpMQTT.php");
$host = "hostname";
$port = port;
$username = "username";
$password = "password";
$mqtt = new phpMQTT($host, $port, "ClientID".rand());
if(!$mqtt->connect(true,NULL,$username,$password)){
exit(1);
}
//currently subscribed topics
$topics['topic'] = array("qos"=>0, "function"=>"procmsg");
$mqtt->subscribe($topics,0);
while($mqtt->proc()){
}
$mqtt->close();
function procmsg($topic,$msg){
echo "Msg Recieved: $msg";
}
这是phpMQTT.php
文件:https ://github.com/bluerhinos/phpMQTT/blob/master/phpMQTT.php
但是,这种情况下的问题是它仅在网页打开时才接收数据。即使网页未打开以始终接收已发布的消息,我也想保持连接状态,我该怎么做?
编辑:如果有人可以推荐一些替代方案,我可能愿意在服务器上使用其他一些技术来处理这个订阅过程