一、簡介
整體是利用MQTTBroker + MQTTClient 實現服務端(HTTP伺服器)和終端(閘道器)的通訊過程。
其中MQTTBroker是採用Go語言實現,MQTTClient是採用PHP實現訂閱和釋出功能(可採用HTTP API來替代)
二、環境準備(Linux)
1、LNMP
2、Composer
> #下載
>
> php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
>
> #執行
>
> php composer-setup.php
>
> #移動 composer.phar,這樣 composer 就可以進行全域性呼叫:
>
> mv composer.phar /usr/local/bin/composer
>
> #切換為國內映象
>
> # composer config -g repo.packagist composer https://packagist.phpcomposer.com
>
> #更新composer
>
> # composer selfupdate
3、Go
wget https://dl.google.com/go/go1.13.4.linux-am...
tar -C /usr/local -xzf go1.13.4.linux-amd64.tar.gz
cd /data/ && mkdir go && cd go && mkdir bin &&mkdir src &&mkdir pkg
vi /etc/profile
export GOROOT=/usr/local/go ##Golang安裝目錄
export PATH=$GOROOT/bin:$PATH
export GOPATH=/home/go ##Golang專案目錄
source /etc/profile ##重新整理環境變數
go version ##檢視go版本
三、MQTTBroker
./MQTTBroker
四、MQTTClient
> #下載mqttclient(/MQTT/Client)
> #配置檔案
> /MQTT/Client/conf/mqtt.php
>
> return [
>
> 'ip' => 'mqtt://192.168.71.144:1883',#MQTTBroker IP
>
> 'pubUrl' => "http://192.168.71.144/mqtt/index",#推送http地址
>
> 'http' =>'http://0.0.0.0:1212',#監聽埠
>
> #配置資訊
>
> 'options' => [
>
> 'client_id' => '*',#clientID
>
> 'username' => '*',#mqtt登入使用者
>
> 'password' => '*',#mqtt登入密碼
>
> 'qos' => 1,
>
> 'debug' => 0 #開啟除錯模式
>
> ]
>
> ];
>
> #開啟發布
> php /MQTT/Client/examples/pubilsh.php start
>
> #開啟訂閱
> php /MQTT/Client/examples/subscribe.php start
五、壓力測試
> #下載mqtt-benchmark(/MQTT/MQTTBenchmark)
>
> #檢視命令
>
> mqtt-benchmark --help
>
> #常用命令(text格式)
> mqtt-benchmark --broker tcp://broker.local:1883 --count 100 --size 100 --clients 100 --qos 1 --format text > mqttbenchmark.log
>
> #json格式
> mqtt-benchmark --broker tcp://broker.local:1883 --count 100 --size 100 --clients 100 --qos 1 --format json --quiet > mqttbenchmark.log
六、總結
1、可使用MQTTBroker 登入驗證(金鑰、賬號等)
2、第四步MQTTClient可通過HTTP的API進行替代(開發ing)
3、整體效能有待提高(可配置叢集)
微信公眾號後臺回覆MQTT,獲取資源
本作品採用《CC 協議》,轉載必須註明作者和本文連結