想讓webman通過MQTT實(shí)現(xiàn)的物聯(lián)網(wǎng)設(shè)備消息的訂閱消費(fèi),查了workerman/mqtt相關(guān)手冊(cè),試了好幾次都沒搞定,有沒有哪位朋友利用webman實(shí)現(xiàn)MQTT客戶端的相關(guān)示例?
問題已解決,使用方法如下
1、在webman根目錄輸入命令行
composer require workerman/mqtt
2、在process下創(chuàng)建一個(gè)類,如下所示
namespace process;
use Workerman\Worker;
class Mqtttask
{
public static function onWorkerStart()
{
$mqtt = new \Workerman\Mqtt\Client('mqtt://127.0.0.1:1883', array(
//'debug' => true,
"username"=>"admin",
"password"=>"admin",
"client_id"=>"admin"
));
$mqtt->onConnect = function($mqtt) {
$mqtt->subscribe('test');
};
$mqtt->onMessage = function($topic, $content) {
echo "topic:$topic content:$content\n";
};
$mqtt->connect();
}
}
3、編輯config/process.php文件
在return[]內(nèi)添加進(jìn)程
'mqtttask'=>[
'handler'=>process\Mqtttask::class,
'count'=>1
]
4、啟動(dòng)webman,即可完成
debug方式運(yùn)行(用于開發(fā)調(diào)試)
php start.php start
daemon方式運(yùn)行(用于正式環(huán)境)
php start.php start -d
windows用戶用 雙擊windows.bat 或者運(yùn)行
php windows.php