Перейти к содержимому
docs.
WORKSPACE

Документации проектов

Открыть каталог проектов
Localzet ServerАсинхронный PHP-серверTriangleФреймворк и компонентыMIX IDИдентификация и интеграцииHack APIПубличные API хакатонаACNПроект и компонентыUserlay / UserNetПроект и компонентыAxiomПроект и компонентыМесседжинг через почтуПроект и компонентыLWT / JWT / JOSEПроект и компонентыФинансовая аналитика KimaiПроект и компонентыМультипарадигмальная БДПроект и компонентыZorin PlatformПроект и компонентыZorin TrustПроект и компонентыFloraScope / VegwatchПроект и компонентыaegis-qДокументация проектаaevumdbДокументация проектаauditДокументация проектаauto-invest-managerАвтотрейдерcaine-companionДокументация проектаcertbot-cloudflareДокументация проектаClusterLocalzet Server / ClustercmdveilДокументация проектаConsolePHP CLICronБиблиотеки Localzet Serverdata-connectorДокументация проектаdevice-controlDevice Controlenn-projectДокументация проектаEventsБиблиотеки Localzet ServerflowsintДокументация проектаforgeДокументация проектаHttpClientБиблиотеки Localzet ServerinterpreterСобственный языкinvariaДокументация проектаkeynotesДокументация проектаknotrouteKnotroutelaravel-personal-analyticsДокументация проектаlocalzet-osДокументация проектаmeridianДокументация проектаMQTTБиблиотеки Localzet Server✓nano-kernelСобственная ОСNoterДокументация проектаpersonal-analyticsДокументация проектаProxyБиблиотеки Localzet ServerPSRБиблиотеки Localzet ServerPSR-7Библиотеки Localzet Serverrschs-monitorДокументация проектаsemsealДокументация проектаshardsealДокументация проектаSocketIOБиблиотеки Localzet ServerSOCKS5Библиотеки Localzet Serverstandalone-analyticsДокументация проектаstatic-php-cliДокументация проектаStorageБиблиотеки Localzet ServersutureДокументация проектаtempoweaveДокументация проектаttsСинтез речиTunnelБиблиотеки Localzet Serverui-kitUI KitvesperДокументация проектаWebAnalyzerWebAnalyzerzorin-access-brokerДокументация проектаzorin-authority-brokerДокументация проектаzorin-authority-sdk-phpДокументация проектаzorin-authority-sdk-pythonДокументация проектаzorin-authority-sdk-tsДокументация проектаzorin-client-intelДокументация проектаzorin-device-core-aospДокументация проектаzorin-host-agentДокументация проектаzorin-native-labДокументация проектаzorin-nodeДокументация проектаzorin-opsДокументация проектаdonstu-python-sdkДокументация проектаfloortraceFloortraceserver-rsLocalzet Server / Cluster
Каталог

MQTT — API

src/Client.php содержит Workerman\Mqtt\Client, тогда как Composer настраивает localzet\MQTT\. Это разные имена PHP-классов; для использования необходимо устранить описанное в руководстве несоответствие autoload/transport.

КлючDefaultЗначение
clean_session1Параметр сессии CONNECT.
username, passwordПустые строкиCredentials broker.
keepalive50Интервал MQTT keepalive; 0 отключает.
protocol_nameMQTTИмя протокола.
protocol_level4Выбор версии; 5 переключает codec MQTT5.
reconnect_period1Интервал reconnect, 0 отключает.
connect_timeout30Ожидание CONNACK.
resubscribetrueСохранять темы для восстановления подписок.
bindtoПустая строкаЛокальный bind для исходящего соединения.
sslfalseSSL transport/context.
debugfalseОтладочный вывод, включая чувствительные данные.
properties[]MQTT5 properties CONNECT.

client_id и will дополнительно используются при CONNECT. Client ID должен соответствовать вашей политике сессий broker; изменение ID не является продолжением прежней сессии.

МетодСмысл
connect()Привязать transport callbacks и начать подключение.
subscribe($topic, array $options = [], $callback = null, $properties = [])Отправить SUBSCRIBE и при необходимости сохранить темы.
unsubscribe($topic, $callback = null, array $properties = [])Отписаться.
publish($topic, $content, $options = [], $callback = null, $properties = [])Отправить PUBLISH с QoS/retain/dup.
disconnect($code, $properties = [])MQTT DISCONNECT и закрытие.
auth($code, $properties = [])AUTH packet для соответствующего протокольного обмена.
close()Закрыть transport.
reconnect($after = 0)Запланировать/выполнить новое подключение через transport.

QoS проверяется как 0, 1 или 2; неподходящие темы/QoS направляются в error path. Для MQTT5 пустой publish-topic допускается только при соответствующем topic_alias. Свойства MQTT5 не добавляют автоматическую бизнес-валидацию payload.

onConnect($client) — подтверждённое соединение, onMessage($topic, $content, $client) — входящий PUBLISH. Также предусмотрены onReconnect, onClose и onError. Subscription callback получает exception|null и granted-map; publish callback зависит от QoS acknowledgement.

Внешняя callback-логика выполняется в event loop. Не блокируйте её медленным I/O без подходящего механизма и не допускайте, чтобы исключение обработки сообщения маскировало политику повторной доставки.

В Protocols/Mqtt.php и Mqtt5.php находятся input/encode/decode. MQTT5 Handle/EncodeV5, DecodeV5, Property/PackProperty, UnPackProperty и PacketMap кодируют поля/properties конкретных пакетов. Consts определяет команды, свойства и reason codes.

Codec работает с протокольными полями, а не с правами пользователя на topic. Доступ к topic и сессиям проверяются политикой broker. Вспомогательный Tools/Debug отображает байты в hex/text; не применяйте его к credentials и приватным payload в общедоступном логе.