1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/try-to-swoole_mqtt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_CN.md 7.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 14:39 a769d73

MQTT

Это асинхронный клиент библиотеки 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.

Интерфейс

  • Client::__construct()
  • Client::connect()
  • Client::reconnect()
  • Client::publish()
  • Client::subscribe()
  • Client::unsubscribe()
  • Client::disconnect()
  • Client::close()
  • callback onConnect
  • callback onMessage
  • callback onError
  • callback onClose

__construct (string $host, int $port, [array $options])

Создаёт экземпляр клиента 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.

connect()

Подключается к сервису.


reconnect()

Повторно подключается к сервису.


publish(String $topic, String $content, [array $options], [callable $callback])

Отправляет сообщение на определённую тему.

  • $topic — тема.
  • $message — сообщение.
  • $options — опции, включая:
    • qos — уровень QoS, по умолчанию 0.
    • retain — флаг сохранения, по умолчанию false.
    • dup — флаг дублирования, по умолчанию false.
  • $callback — функция обратного вызова, вызывается при возникновении ошибки или успешном выполнении. Является объектом исключения, когда ошибки нет, null.

subscribe(mixed $topic, [array $options], [callable $callback])

Подписаться на одну или несколько тем.

  • $topic может быть строкой (подписка на одну тему) или массивом (подписка на несколько тем). При подписке на несколько тем $topic является ключом массива, а QoS — значением. Например, array('topic1'=> 0, 'topic2'=> 1).
  • $options содержит параметры подписки, включая:
    • qos — уровень QoS по умолчанию равен 0.
  • $callback — функция обратного вызова, которая вызывается при успешной подписке или ошибке. Включает объект исключения при отсутствии ошибки, null, и массив результатов подписки, аналогичный array('topic' => 'qos', 'topic' => 'qos'), где:
    • topic — подписанная тема.
    • qos — принятый уровень QoS брокером.

unsubscribe(mixed $topic, [callable $callback])

Отменить подписку.

  • $topic — строка или массив строк, например, array('topic1', 'topic2').
  • $callback — функция обратного вызова при успешном завершении или ошибке.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/try-to-swoole_mqtt.git
git@api.gitlife.ru:oschina-mirror/try-to-swoole_mqtt.git
oschina-mirror
try-to-swoole_mqtt
try-to-swoole_mqtt
master