ThinkPHP3.2中使用phpMQTT

直接上干货!

client="sub_123";
        // mqtt主机 主机,请配置为自己的主机
        $this->host = C('MQTT_HOST'); 
        // mqtt端口
        $this->port = C('MQTT_PORT');
        // 密钥 用于证书配置,如果需要ssl认证,则必须填写
        $this->cert= 'ca.pem';
        // mqtt账号
        $this->username ="";
        // mqtt密码
        $this->password = "";
        // 订阅主题 订阅的主题,注意使用的主题一定要是mqtt配置过的主题,比如百度天工需要策略认证过的
        // 自己学习的时候,可以随意自定义,一般跟发布主题一致便可以收到消息
        // 如要要接受所有主题,请使用#
        $this->topics_name="sub topic";
    }

    //运行 并且订阅
    function index(){
        // 创建mqtt实例 
        $this->mqtt = new \Vendor\PhpMQTT\PhpMQTT($this->host,$this->port,$this->client,$this->cert);

        // 若mqtt链接失败
        if(!$this->mqtt->connect(true,NULL,$this->username,$this->password)) {
            echo "mqtt链接失败!";
        }

        // 注意:这里qos的设置,有些broker限制了使用0,则可以用1试试。百度天工测试代码 则为1
        $topics[$this->topics_name] = array("qos" => 0, "function" =>array($this,"message"));
        $this->mqtt->subscribe($topics,0);
        
        while ($this->mqtt->proc()) {
        }
    }
    
    // 回调消息
    public function message($topic,$msg){
        echo "收到订阅消息 $topic:$msg \n\r";
    }

   
}

订阅请在命令行单独起进程运行
TP5+laravel等有问题可以联系作者

大早上赶时间整理的代码,如果有问题联系qq:1186969412

你可能感兴趣的:(ThinkPHP3.2中使用phpMQTT)