mqtt - Laravel MQTT 订阅 - 未定义索引:qos
问题描述
我尝试订阅一个主题,我收到下面提到的错误:
未定义的数组键“qos”
我的代码:
`试试{
$mqtt = new Mqtt();
$mqtt->ConnectAndSubscribe('myTopic', function ($topic, $msg) {
Log::info("Mqtt Msg Received");
});
} 捕捉 (\Exception $e) {
dd($e->getMessage());
}`
(如示例中所示,我将其插入到控制器中)。
$buffer .= chr($callback["qos"]);
在供应商/salmanzafar/laravel-mqtt/src/MqttClass/MqttService.php:173
如果我添加一个简单的“?? 0”来解决问题,当我尝试订阅时,它似乎不起作用。
我正在使用 Laravel 8.16 和 PHP 8.0 和“salmanzafar/laravel-mqtt”:“^2.0”。
解决方案
文档:https ://packagist.org/packages/salmanzafar/laravel-mqtt
请检查您的 QoS 是否配置Config/mqtt.php
:
'host' => env('mqtt_host','127.0.0.1'),
'password' => env('mqtt_password',''),
'username' => env('mqtt_username',''),
'certfile' => env('mqtt_cert_file',''),
'localcert' => env('mqtt_local_cert', ''),
'localpk' => env('mqtt_local_pk', ''),
'port' => env('mqtt_port','1883'),
'debug' => env('mqtt_debug',false) //Optional Parameter to enable debugging set it to True
'qos' => env('mqtt_qos', 0), // set quality of service here
'retain' => env('mqtt_retain', 0) // it should be 0 or 1 Whether the message should be retained.- Retain Flag
推荐阅读
- python - 将变量从 Python 发送到 PHP
- java - 在 Java 中使用 WCF 服务
- amazon-web-services - 即使 EC2 实例正在运行,ECS 中也会列出空的 EC2 实例
- c# - 如何在 C# MVC 中检查方法是否具有 AllowAnonymous 属性
- excel - 计数和复制动态范围 Vba
- excel - 根据单元格值隐藏多行的代码
- ansible - 使用 kolla-ansible 安装 ceph 进行多合一设置
- haskell - 如何在 Haskell 的函数中使用 do 块?
- python - 如果最后一个 impala 语句是 select 语句,如何检查 pyodbc 包?
- c# - DevExpress:如何创建点击事件处理程序?