PHP发送MQTT消息
在与硬件通信中用到了MQTT,稳定性很不错。
/**MQTT配置信息**/ //MQTT 'mqtt_confing' => [ 'host' => '127.0.0.1', 'port' => 1883, 'username' => 'mqtt', 'password' => 'password', 'client_id' => 'web2020', ],
/** * 发送MQTT * @param unknown $title * @param unknown $message * @param number $qos */ function Send_Mqtt($title,$message,$qos=0){ $config = config('mqtt_confing'); //phpMQTT有四个参数:主机,端口,客户端id,证书。官网这里的案例没写证书,请参考phpMQT类 //没有证书的时候只能连接1883端口,不能连接8883端口。 //第三个参数为客户端ID 不可重复 $mqtt = new phpMQTT($config['host'], $config['port'], $config['client_id']); //连接 if ($mqtt->connect(true, NULL, $config['username'], $config['password'])) { //发送信息 第三个参数为Qos服务质量等级 //Qos0 发送者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下,Broker可能没有接受到消息 //Qos1 发送者最少发送一次消息,确保消息到达Broker,Broker需要返回确认消息PUBACK。在Qos1情况下,Broker可能接受到重复消息 //Qos2 Qos2使用两阶段确认来保证消息的不丢失和不重复。在Qos2情况下,Broker肯定会收到消息,且只收到一次 $mqtt->publish($title, $message, $qos); $mqtt->close(); //关闭 //echo "send success"; return true; } else { //echo "Fail or time out<"; return false; } }
类文件:phpMQTT.rar
共 0 条评论