# hyperf3-mqtt-client **Repository Path**: szktor/hyperf3-mqtt-client ## Basic Information - **Project Name**: hyperf3-mqtt-client - **Description**: 需要php>=8.1,适用于hyperf3.1版本的mqtt客户端,支持配置连接池 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-25 - **Last Updated**: 2025-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 安装 ## - 注意php >= 8.1 ```bash $ 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 | {} | 连接池配置 | ```php 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`完整配置文件使用命令 ```bash $ 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 get(Hyperf\MqttClient\Mqtt::class); $mqtt->publish('helloWorld', 'test'); ```