MQTT

Драйвер устройства MQTT позволяет SberMobile Server подключаться к брокеру MQTT и подписываться на темы (topics). Полученные сообщения представлены как события устройства.

MQTT – протокол обмена сообщениями стандарта ISO типа "издатель/подписчик" , используемый в добавок к протоколу TCP/IP.

Информация о драйвере

ID плагина драйвера:

com.tibbo.linkserver.plugin.device.mqtt

Общие настройки

Не определены.

Настройки уровня пользователя

Не определены.

Свойства device

Настройки подключения

Настройки подключения определяют, как SberMobile Server взаимодействует с MQTT брокером. Данные настройки доступны через опцию Изменить свойства Device контекста Device. Доступны следующие свойства подключения:

Настройка

Описание

Адрес брокера

Адрес брокера MQTT. Он определен как URI. Поддерживаются два типа подключения: tcp:// для подключения TCP и ssl:// для подключения TCP,  защищенного SSL/TLS.

Пример 1: tcp://localhost:1883

Пример 2: ssl://localhost:8883

Если порт не определен, MQTT будет использовать 1883 для TCP, и 8883 для TCP, защищенного SSL/TLS.

Темы

Таблица тем и параметров Качества услуг (QoS (Quality of Service)). Темы поддерживают подстановочные знаки. Параметр QoS может быть выставлен на 0, 1 или 2.

  • QoS 0 показывает, что сообщение должно быть доставлено не более одного раза (ноль или один раз).

  • QoS 1 показывает, что сообщение должно быть доставлено не менее одного раза (один или более раз).

  • QoS 2 показывает, что сообщение должно быть доставлено только один раз.

Тип сообщения

Тип сообщений. Может быть текствым сообщением или сообщением с данными.

Имя пользователя

Имя пользователя, которое используется для подключения к брокеру MQTT.

Пароль

Пароль, который используется для подключения к брокеру MQTT.

ID клиента

Идентификатор каждого клиента, устанавливающего соединение с сервером. ID клиента должен быть уникальным для всех клиентов. Используется сервером для хранения данных, которые связаны с клиентом, поэтому важно, чтобы этот параметр оставался неизменным, когда запрашивается соединение с сервером в течение подписок или достоверных сообщений. По умолчанию ID клиента генерируется автоматически.

Clean Session

Устанавливает, должен ли клиент и сервер запоминать состояние при перезапуске и переподключении. Если уставлено на false, и клиент и сервер будут сохранять состояние при перезагрузке клиента, сервера и переподключении. Доставка сообщений будет надежной и отвечать указанному QoS, даже при перезапуске клиента, сервера или соединения. Если уставлено на true, клиент и сервер не сохранят состояние при перезагрузке клиента, сервера или подключения.

Интервал Keep Alive

Это значение, измеряемое в секундах, определяет максимумальный временной интервал между отправленными или полученными сообщениями. Это позволяет клиенту определить, что сервер больше недоступен, без необходимости ждать таймаута TCP/IP. Клиент обеспечит то, что по крайней мере одно сообщение находится в сети в пределах каждого интервала keep alive. При отсутствии сообщения с данными в пределах временного периода, клиент посылает очень маленькое  "пинг" сообщение, которое будет подтверждено сервером. Значение 0 отменяет обработку параметра в клиенте.
Значение по умолчанию – 60 секунд.

Таймаут подключения

Устанавливает значение таймаута подключения. Это значение, измеряемое в секундах, определяет максимальный временной интервал, в течение которого клиент будет ожидать установления подключения к серверу MQTT. Таймаут по умолчанию – 30 секунд. Значение 0 отменяет обработку таймаута. Это означает, что клиент будет ждать до тех пор, пока подключение не установится или будет отклонено.

Версия MQTT

Устанавливает версию MQTT. Действие по умолчанию для подключения с версией 3.1.1, и возвращение к версии 3.1, если предыдущая отказала в работе. Версия 3.1.1 или 3.1 может быть выбрана специфически, без возвращения к предыдущей версии.

Максимальное количество сообщений в процессе передачи

Устанавливает максимальное количество сообщений, которые могут одновременно передаваться по сетевому потоку. Увеличение данного значения займет больше памяти, но может увеличить пропускную способность. Значение по умолчанию - 10.

Использовать SSL/TLS

Позволяет использовать TCP подключение, защищенное SSL/TLS.

Протокол

Имя использовуемого криптографического протокола (SSL, SSLv2, SSLv3, TLS, TLSv1, TLSv1.1 или TLSv1.2).

Тип хранилища

Тип файла хранилища ключей: JKS, JCEKS или PKCS12.

Файл хранилища

Путь к файлу хранилища, содержащему сертификаты клиента. Это путь к локальной файловой системе на машине, на которой работает SberMobile Server.

Путь к CA сертификату

Путь к файлу с CA сертификатом.

Путь к сертификату клиента

Путь к файлу с сертификатом клиента.

Пароль хранилища

Пароль для декодирования файла хранилища ключей.

Пароль менеджера ключей

Пароль для восстановления ключей в хранилище.

Включить буфер

Активирует использование офлайнового буфера сообщений для неподтвержденных сообщений. 

Размер буфера

Максимальное число сообщений, которые могут храниться в буфере.

Удалять наиболее старые сообщения

Определяет, будут ли удаляться наиболее старые сообщения, когда количество сообщений в буфере достигает максимума. Если это значение false, буду игнорироваться сообщения сверх установленного максимума. 

Активы device

Драйвер не поддерживает активы.

Настройки device

Драйвер устройства MQTT создает одну переменную настроек Device:

Имя переменной

Описание переменной

Комментарии

messageCount

Количество сообщений

Количество полученных сообщений. Значение обновляется после каждой синхронизации. При переподключении количество становится снова 0.

Операции device

Опубликовать текстовое сообщение

Отправить текстовое сообщение брокеру.

У формата функции параметров входа есть следующие поля:

Имя

Тип

Описание

Topic

Строка

Тема, относительно которой будет опубликовано сообщение.

QoS

Целочисленное

Количество уровня сервиса. Валидные значения 0, 1 или 2.

Retained

Булевое

Должны сохраняться или нет сообщения брокером.

Text Message

Строка

Сообщение.

У функций нет параметров выхода.

Опубликовать сообщение данных

Отправить сообщение данных брокеру.

У формата функции параметров входа есть следующие поля:

Имя

Тип

Описание

Topic

Строка

Тема, относительно которой будет опубликовано сообщение.

QoS

Целочисленное

Количество уровня сервиса. Валидные значения 0, 1 или 2.

Retained

Булевое

Должны сохраняться или нет сообщения брокером.

Data Message

Блок данных

Сообщение данных.

У функций нет параметров выхода.

События device

Сообщение

Запускается, когда SberMobile Server получает входящее сообщение MQTT.

Имя события

message

Записи:

1

Формат записи:

Имя поля

Тип поля

Заметки

topic

Строка

Тема сообщения.

message

Таблица данных

Формат таблицы данных зависит от типа сообщения.

  • Формат для текстовых сообщений:

Имя поля

Тип поля

textMessage

Строка

  • Формат для текстовых сообщений:

Имя поля

Тип поля

dataMessage

Блок данных

Подключение

Данный драйвер переводит устройство в режим онлайн, если было установлено соединение с брокером MQTT.