workman使用mqtt

发布消息

<?php
require __DIR__ . '/vendor/autoload.php';

use Workerman\Worker;
$worker = new Worker();
$worker->onWorkerStart = function () {
    $qos = 0;
    $topic = 'test';
    $port = 8883;
    $keepalive = 90;
    $cleanSession = true;
    $clientId = $clientId = rand(0, 100000) . time();
    $options = [
        'username' => 'root',
        'password' => '123456',
        'keepalive' => $cleanSession,
        'clean_session' => $keepalive,
        'client_id' => $clientId,
        'debug' => false,
        'ssl' => [
            'local_pk' => './mqtt_ssl/privkey.pem',
            'verify_peer' => false,
        ],
    ];
    $clicke = "mqtt://127.0.0.1:$port";
    $mqtt = new Workerman\Mqtt\Client($clicke, $options);
    $mqtt->onConnect = function ($mqtt) use ($topic, $qos) {
        $mqtt->publish($topic, 'xini workerman mqtt', ['qos' => $qos]);
    };
    $mqtt->connect();
};
Worker::runAll();

mosquitto证书配置(这里使用的是Let's Encrypt免费证书)


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容