Это асинхронный клиент библиотеки MQTT, основанный на swoole, который можно использовать для получения и отправки сообщений по протоколу MQTT. Поддерживаются QoS 0, QoS 1 и QoS 2. Поддерживает версии MQTT 3.1 и 3.1.1.
composer require try-to/swoole_mqtt
subscribe.php
<?php
use TrytoMqtt\Client;
require_once __DIR__ . '/vendor/autoload.php';
$options = [
'clean_session' => false,
'client_id' => 'demo-subscribe-123456',
'username' => '',
'password' => '',
];
$mqtt = new Client('127.0.0.1', 1883, $options);
$mqtt->onConnect = function ($mqtt) {
$mqtt->subscribe('/World');
};
$mqtt->onMessage = function ($topic, $content) {
var_dump($topic, $content);
};
$mqtt->onError = function ($exception) use ($mqtt) {
echo "error\n";
// $mqtt->reconnect(1000);
};
$mqtt->onClose = function () {
echo "close\n";
};
$mqtt->connect();
Запустить в командной строке php subscribe.php
.
publish.php
<?php
use TrytoMqtt\Client;
require_once __DIR__ . '/../vendor/autoload.php';
$options = [
'clean_session' => false,
'client_id' => 'demo-publish-123456',
'username' => '',
'password' => '',
];
$mqtt = new Client('127.0.0.1', 1883, $options);
$mqtt->onConnect = function ($mqtt) {
$mqtt->publish('/World', 'hello swoole mqtt');
};
$mqtt->onError = function ($exception) {
echo "error\n";
};
$mqtt->onClose = function () {
echo "close\n";
};
$mqtt->connect();
Запустить в командной строке php publish.php
.
Создаёт экземпляр клиента MQTT.
$host
— адрес сервера.
$port
— порт.
$options
— массив опций клиента, можно настроить следующие опции:
keepalive
: по умолчанию 50 секунд, установка значения 0 отключает опцию.client_id
: идентификатор клиента, если не установлен, то по умолчанию «swoole-mqtt-client-».mt_rand().protocol_name
: протокол, MQTT (версия 3.1.1) или MQIsdp (версия 3.1), по умолчанию MQTT.protocol_level
: уровень протокола, значение 4 для protocol_name MQTT и значение 3 для protocol_name MQIsdp.clean_session
: очистить сессию, по умолчанию true. Установка значения false позволяет получать сообщения QoS 1 и QoS 2 в автономном режиме.reconnect_period
: интервал повторного подключения, по умолчанию 1 секунда, 0 означает отсутствие повторного подключения.connect_timeout
: время ожидания соединения с MQTT, по умолчанию 30 секунд.username
: имя пользователя, опционально.password
: пароль, опционально.will
: сообщение о завещании, которое будет автоматически отправлено другим клиентам после разрыва соединения с сервером. Формат:
topic
: тема.content
: содержимое.qos
: уровень QoS.retain
: флаг сохранения.resubscribe
: при повторном подключении после сбоя соединения, следует ли повторно подписываться на предыдущие темы, по умолчанию true.bindto
: используется для указания локального IP-адреса и порта для подключения к серверу, по умолчанию ' '.ssl
: опция SSL, по умолчанию false. Если установлено значение true, соединение устанавливается через SSL. Также можно передать массив параметров SSL для настройки локальных сертификатов и т. д., см. https://wiki.swoole.com/wiki/page/p-client_setting.html.debug
: включить режим отладки, чтобы выводить подробную информацию о взаимодействии с сервером, по умолчанию false.Подключается к сервису.
Повторно подключается к сервису.
Отправляет сообщение на определённую тему.
$topic
— тема.$message
— сообщение.$options
— опции, включая:
qos
— уровень QoS, по умолчанию 0.retain
— флаг сохранения, по умолчанию false.dup
— флаг дублирования, по умолчанию false.$callback
— функция обратного вызова, вызывается при возникновении ошибки или успешном выполнении. Является объектом исключения, когда ошибки нет, null.Подписаться на одну или несколько тем.
$topic
может быть строкой (подписка на одну тему) или массивом (подписка на несколько тем). При подписке на несколько тем $topic
является ключом массива, а QoS — значением. Например, array('topic1'=> 0, 'topic2'=> 1).$options
содержит параметры подписки, включая:
qos
— уровень QoS по умолчанию равен 0.$callback
— функция обратного вызова, которая вызывается при успешной подписке или ошибке. Включает объект исключения при отсутствии ошибки, null, и массив результатов подписки, аналогичный array('topic' => 'qos', 'topic' => 'qos'), где:
topic
— подписанная тема.qos
— принятый уровень QoS брокером.Отменить подписку.
$topic
— строка или массив строк, например, array('topic1', 'topic2').$callback
— функция обратного вызова при успешном завершении или ошибке.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )