alhaji-aki/laravel-mqtt-client

一个用于订阅和发布MQTT协议的软件包

dev-master / 1.x-dev 2021-05-30 13:26 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:13 UTC


README

composer require alhaji-aki/laravel-mqtt-client

发布配置并添加监听命令到应用程序

php artisan mqtt:install

修改监听命令中的逻辑并在命令内核中注册它

可用方法

连接到代理

MqttClient::connect();

获取连接

MqttClient::connect()->connection();

断开连接

use AlhajiAki\MqttClient\Facades\MqttClient;

$connection = MqttClient::connect()->connection();
$connection->disconnect();

发布

use AlhajiAki\MqttClient\Facades\MqttClient;

$data = [
    'foo' => 'bar',
    'bar' => 'baz',
    'time' => time(),
]

MqttClient::connect()->publish('foo/bar', json_encode($data), 0);

订阅

use AlhajiAki\MqttClient\Facades\MqttClient;
use Morbo\React\Mqtt\Packets\Publish;

MqttClient::connect()->subscribe('foo/bar', function ($stream) {
    $stream->on(Publish::EVENT, function (Publish $message) {
        printf(
            'Received payload "%s" for topic "%s"%s',
            $message->getPayload(),
            $message->getTopic(),
            PHP_EOL
        );
    });
}, 0);

取消订阅

use AlhajiAki\MqttClient\Facades\MqttClient;

MqttClient::connect()->unsubscribe('foo/bar', function ($message) {
    printf(
        'Received payload "%s" for topic "%s"%s',
        $message->getPayload(),
        PHP_EOL
    );
}, function ($ex) {
    printf('Error occured: %s', $ex->getMessage());
});