szktor / hyperf3-mqtt-client
v3.0.0
2025-07-25 03:31 UTC
Requires
- php: >=8.1
- hyperf/contract: 3.1.*
- hyperf/pool: 3.1.*
- hyperf/support: ~3.0
- php-mqtt/client: ^2.2
- psr/container: ^1.0|^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: >=7.0
- swoole/ide-helper: ^4.5
This package is not auto-updated.
Last update: 2025-07-26 01:42:28 UTC
README
- 注意php >= 8.1
$ composer require szktor/hyperf3-mqtt-client
配置项
配置项 | 类型 | 默认值 | 备注 |
---|---|---|---|
host | string | 'localhost' | MQTT地址 |
port | int | 1883 | MQTT端口 |
user_name | string | 无 | 用户名 |
password | string | 无 | 密码 |
keep_alive | int | 60 | 保活时间 |
protocol | string | 3.1.1 | mqtt协议版本 |
repository | string | \PhpMqtt\Client\Repositories\MemoryRepository::class | 仓储对象,默认内存 |
clean_session | boole | true | 会话清除 |
pool | object | {} | 连接池配置 |
return [
'default' => [
'host' => env('MQTT_HOST', 'localhost'),
'port' => (int)env('MQTT_PORT', 1883),
'client_id' => env('MQTT_CLIENT_ID', md5('test-' . microtime())),
'user_name' => env('MQTT_USERNAME', ''),
'password' => env('MQTT_PASSWORD', ''),
'keep_alive' => (int)env('MQTT_KEEP_ALIVE', 20),
'protocol' => \PhpMqtt\Client\MqttClient::MQTT_3_1_1,
'repository' => \PhpMqtt\Client\Repositories\MemoryRepository::class,
'clean_session' => true,
'pool' => [
'min_connections' => 1,
'max_connections' => 10,
'connect_timeout' => 10.0,
'waitTimeout' => 3.0,
'heartbeat' => -1,
'maxIdleTime' => (int)env('MQTT_KEEP_ALIVE', 20) * 1.5,
]
]
];
publish
完整配置文件使用命令
$ php bin/hyperf.php vendor:publish szktor/hyperf3-mqtt-client
使用
szktor/hyperf3-mqtt-client
实现了php-mqtt/client
代理和连接池,用户可以直接通过依赖注入\Hyperf\Mqttclient\Mqtt
来使用mqtt客户端,实际获取的是一个\PhpMqtt\Client\MqttClient
的一个代理对象.
<?php
use Hyperf\Context\ApplicationContext;
$container = ApplicationContext::getContainer();
$mqtt = $container->get(Hyperf\MqttClient\Mqtt::class);
$mqtt->publish('helloWorld', 'test');