phpMQTT详解

参考

https://www.cloudmqtt.com/docs-php.html

下载

https://github.com/bluerhinos/phpMQTT

CloudMQTT 概述

https://www.cloudmqtt.com/docs.html

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
"; }
服务端订阅
 // 注意:订阅请用窗口或者后台去运行,不要再页面运行。
  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

你可能感兴趣的:(phpMQTT详解)