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 条评论