参考
下载
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