# PHP Laravel + MQTT Github Repo: https://github.com/salmanzafar949/MQTT-Laravel ## 安裝 使用composer在位置資料夾當中輸入指令 ```bash= $ composer require salmanzafar/laravel-mqtt ``` > <b style="color:red">注意</b>:目前2.0以後的版本有發現重大bug導致設定無法載入,建議先使用1.0的最後版本 `composer require salmanzafar/laravel-mqtt:1.0.9` 完成之後要加入到package,到`config/app.php`裡面加入 ```php= 'providers' => [ Salman\Mqtt\MqttServiceProvider::class, ]; 'aliases' => [ 'Mqtt' => \Salman\Mqtt\Facades\Mqtt::class, ]; ``` > 要注意的是,在laravel 5.5之後,套件完成安裝後就會自動載入啟用,所以若是**Laravel 5.4或之前版本**的人才要進行上面的步驟。 ## 設定 接著生成config檔案 ```bash= $ php artisan vendor:publish --provider="Salman\Mqtt\MqttServiceProvider" ``` 到專案裡的`config/mqtt.php`裡設定 ```php= return [ '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'), 'timeout' => (int) env('MQTT_TIMEOUT', 10), 'debug' => (bool) 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 ]; ``` ## Publish =待補= ## Topic get ```php= public function SubscribetoTopic($topic) { $mqtt = new Mqtt(); // $client_id = Auth::user()->id; // $client_id = 1; $mqtt->ConnectAndSubscribe($topic, function($topic, $msg){ dd("Msg Received: \nTopic: {$topic} \nData: $msg"); }); } ```