參考
下載
CloudMQTT 概述
phpMQTT詳解
CloudMQTT 除了有php的類庫,還有python,java.net等mqtt的類庫。
客戶端發布
//publish.php
require("phpMQTT.php");
$host = "hostname"; //主機
$port = port; //端口
$username = "username"; //如果沒有則為空
$password = "password"; //如果沒有則為空
$message = "Hello CloudMQTT!"; //要發送的消息
//phpMQTT 有四個參數:主機,端口,客戶端id,證書。官網這里的案例沒寫證書,請參考phpMQTT類
//沒有證書的時候只能連接1883端口,不能連接8883端口。
$mqtt = new phpMQTT($host, $port, "ClientID".rand());
//連接
if ($mqtt->connect(true,NULL,$username,$password)) {
$mqtt->publish("topic",$message, 0);
$mqtt->close(); //關閉
}else{
echo "Fail or time out<br />";
}
服務端訂閱
// 注意:訂閱請用窗口或者后臺去運行,不要再頁面運行。
require("phpMQTT.php");
ignore_user_abort(true); // 后臺運行
set_time_limit(0); // 取消腳本運行時間的超時上限
date_default_timezone_set('PRC'); //設置中國時區
$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";
}
注意:再次提醒大家,訂閱一定要以進程的方式運行!不要再瀏覽器中直接運行哦!
qq:1186969412 php群:536633782
推薦一款非常強大的cmf:www.uminicmf.com