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

评论:

发送