Поделиться через


справочник по API уровня данных MQTT 5 (не рекомендуется) Центр Интернета вещей

В этом документе описаны операции, доступные в версии 2.0 (api-version: 2020-10-01-preview) API плоскости данных Центра Интернета вещей.

Примечание.

Поддержка MQTT 5 в Центр Интернета вещей устарела и Центр Интернета вещей имеет ограниченную поддержку функций для MQTT. Если для решения требуется поддержка MQTT версии 3.1.1 или v5, рекомендуется использовать поддержку MQTT в Сетка событий Azure. Дополнительные сведения см. в разделе "Сравнение поддержки MQTT" в Центр Интернета вещей и сетке событий.

Операции

Получение двойника

Получение состояния двойника

Запросить

Имя раздела: $iothub/twin/get

Свойства: нет

Полезные данные: пусто

Ответ при успешном выполнении

Свойства: нет

Полезные данные: Twin

Альтернативные ответы

Состояние Имя Описание
0100 ошибка запроса Сообщение операции неправильно обработано и не может быть обработано.
0101 Не авторизован Клиент не авторизован для выполнения операции.
0102 Запрещено Операция не разрешена.
0501 Регулируемый Слишком высокая частота запросов на номер SKU.
0502 Превышена квота Превышена дневная квота на текущий номер SKU.
0601 Ошибка сервера Внутренняя ошибка сервера.
0602 Время ожидания Время ожидания операции истекло до ее завершения.
0603 Сервер занят. Сервер занят.

Пример псевдокода


-> PUBLISH
    QoS: 0
    Topic: $iothub/twin/get
<- PUBLISH
    QoS: 0
    Topic: $iothub/responses

Отчет о двойнике исправления

Состояние двойника исправления

Запросить

Имя раздела: $iothub/twin/patch/reported

Свойства.

Имя. Type Обязательно Описание
if-version u64 no

Полезные данные:: TwinState

Ответ при успешном выполнении

Свойства.

Имя. Type Обязательно Описание
версия u64 yes Версия сообщаемого состояния после применения исправления

Полезные данные: пусто

Альтернативные ответы

Состояние Имя Описание
0104 Необходимое условие не выполнено предварительные условия не были выполнены, что привело к отмене запроса
0100 ошибка запроса Сообщение операции неправильно обработано и не может быть обработано.
0101 Не авторизован Клиент не авторизован для выполнения операции.
0102 Запрещено Операция не разрешена.
0501 Регулируемый Слишком высокая частота запросов на номер SKU.
0502 Превышена квота Превышена дневная квота на текущий номер SKU.
0601 Ошибка сервера Внутренняя ошибка сервера.
0602 Время ожидания Время ожидания операции истекло до ее завершения.
0603 Сервер занят. Сервер занят.

Пример псевдокода


-> PUBLISH
    QoS: 0
    Topic: $iothub/twin/patch/reported
    [if-version: <u64>]
<- PUBLISH
    QoS: 0
    Topic: $iothub/responses

Команды получения

Команды получения и обработки

Сообщение

Имя раздела: $iothub/commands

Свойства.

Имя. Type Обязательно Описание
sequence-no u64 yes Порядковый номер сообщения.
enqueued-time Время yes Метка времени, когда сообщение поступило в систему.
delivery-count u32 yes Количество попыток доставки сообщения.
creation-time Время no Метка времени создания сообщения (предоставляется отправителем).
message-id строка no Идентификатор сообщения (предоставляется отправителем).
user-id строка no Идентификатор пользователя (предоставляется отправителем).
correlation-id строка no Идентификатор корреляции (предоставляется отправителем).
Тип содержимого строка no Определяет тип содержимого полезных данных.
content-encoding строка no Определяет кодировку содержимого полезных данных.

Полезные данные: любая последовательность байтов.

Подтверждение успеха

Указывает, что команда была принята для обработки клиентом.

Свойства: нет

Полезные данные: пусто

Альтернативные подтверждения

Код основания Состояние Имя Описание
131 0603 Отказаться Указывает, что команда не будет обработана в настоящее время и должна быть повторно выполнена в будущем.
131 0100 Отклонить Указывает, что клиент отклонил команду, и она не должна быть предпринята повторно.

Пример псевдокода


-> SUBSCRIBE
    - Topic: $iothub/commands
      QoS: 1
<- PUBLISH
    QoS: 1
    Topic: $iothub/commands
    sequence-no: <u64>enqueued-time: <time>delivery-count: <u32>[creation-time: <time>][message-id: <string>][user-id: <string>][correlation-id: <string>][Content Type: <string>][content-encoding: <string>]
    Payload: ...

-> PUBACK

Получение прямых методов

Получение и обработка вызовов прямых методов

Запросить

Имя раздела: $iothub/methods/{name}

Свойства: нет

Полезные данные: любая последовательность байтов.

Ответ при успешном выполнении

Свойства.

Имя. Type Обязательно Описание
response-code u32 yes

Полезные данные: любая последовательность байтов.

Альтернативные ответы

Состояние Имя Описание
06A0 Рекомендации недоступны Указывает, что клиент недоступен через это подключение.

Пример псевдокода


-> SUBSCRIBE
    - Topic: methods/{name}
      QoS: 0
<- SUBACK
<- PUBLISH
    QoS: 0
    Topic: $iothub/methods/{name}
-> PUBLISH
    QoS: 0
    Topic: $iothub/responses

Получение изменений требуемого состояния двойника

Получение обновлений для требуемого состояния двойника

Сообщение

Имя раздела: $iothub/twin/patch/desired

Свойства.

Имя. Type Обязательно Описание
версия u64 yes Версия требуемого состояния, соответствующая этому обновлению.

Полезные данные:: TwinState

Пример псевдокода


-> SUBSCRIBE
    - Topic: $iothub/twin/patch/desired
      QoS: 0
<- PUBLISH
    QoS: 0
    Topic: $iothub/twin/patch/desired
    version: <u64>
    Payload: ...

Отправка данных телеметрии

Отправка сообщения в канал телеметрии — Центры событий по умолчанию или другая конечная точка с помощью конфигурации маршрутизации.

Сообщение

Имя раздела: $iothub/telemetry

Свойства.

Имя. Type Обязательно Описание
Тип содержимого строка no Преобразуется в системное свойство content-type в отправленном сообщении.
content-encoding строка no Преобразуется в системное свойство content-encoding в отправленном сообщении.
message-id строка no Преобразуется в системное свойство message-id в отправленном сообщении.
user-id строка no Преобразуется в системное свойство user-id в отправленном сообщении.
correlation-id строка no Преобразуется в системное свойство correlation-id в отправленном сообщении.
creation-time Время no Преобразуется в свойство iothub-creation-time-utc в отправленном сообщении.

Совет

Для creation-time нужно использовать формат UTC без сведений о часовом поясе. Например, 2021-04-21T11:30:16Z использовать можно, а 2021-04-21T11:30:16-07:00 — нет.

Полезные данные: любая последовательность байтов.

Подтверждение успеха

Сообщение успешно опубликовано в канал телеметрии.

Свойства: нет

Полезные данные: пусто

Альтернативные подтверждения

Код основания Состояние Имя Описание
131 0100 ошибка запроса Сообщение операции неправильно обработано и не может быть обработано.
135 0101 Не авторизован Клиент не авторизован для выполнения операции.
131 0102 Запрещено Операция не разрешена.
131 0601 Ошибка сервера Внутренняя ошибка сервера.
151 0501 Регулируемый Слишком высокая частота запросов на номер SKU.
151 0502 Превышена квота Превышена дневная квота на текущий номер SKU.
131 0602 Время ожидания Время ожидания операции истекло до ее завершения.
131 0603 Сервер занят. Сервер занят.

Пример псевдокода

-> PUBLISH
    QoS: 1
    Topic: $iothub/telemetry
    [Content Type: <string>]
    [content-encoding: <string>]
    [message-id: <string>]
    [user-id: <string>]
    [correlation-id: <string>]
    [creation-time: <time>]

<- PUBACK

Отклики

ошибка запроса

Сообщение операции неправильно обработано и не может быть обработано.

Код причины: 131

Состояние: 0100

Свойства.

Имя. Type Обязательно Описание
reason строка no содержит сведения о том, что конкретно не является допустимым для сообщения

Полезные данные: пусто

Конфликт

Операция конфликтует с другой текущей операцией.

Код причины: 131

Состояние: 0103

Свойства.

Имя. Type Обязательно Описание
trace-id строка no Идентификатор трассировки для корреляции с другими диагностика для ошибки
reason строка no содержит сведения о том, что конкретно не является допустимым для сообщения

Полезные данные: пусто

Запрещено

Операция не разрешена.

Код причины: 131

Состояние: 0102

Свойства.

Имя. Type Обязательно Описание
reason строка no содержит сведения о том, что конкретно не является допустимым для сообщения

Полезные данные: пусто

Не авторизован

Клиент не авторизован для выполнения операции.

Код причины: 135

Состояние: 0101

Свойства.

Имя. Type Обязательно Описание
trace-id строка no Идентификатор трассировки для корреляции с другими диагностика для ошибки

Полезные данные: пусто

Не найдено

запрошенный ресурс не существует

Код причины: 131

Состояние: 0504

Свойства.

Имя. Type Обязательно Описание
reason строка no содержит сведения о том, что конкретно не является допустимым для сообщения

Полезные данные: пусто

Не изменен

Ресурс не был изменен на основе предоставленных предварительных условий.

Код причины: 0

Состояние: 0001

Свойства: нет

Полезные данные: пусто

Необходимое условие не выполнено

Предварительные условия не были выполнены, что привело к отмене запроса

Код причины: 131

Состояние: 0104

Свойства: нет

Полезные данные: пусто

Превышена квота

Превышена дневная квота на текущий номер SKU.

Код причины: 151

Состояние: 0502

Свойства: нет

Полезные данные: пусто

Возможности ресурса исчерпаны

У ресурса нет возможностей для завершения операции.

Код причины: 131

Состояние: 0503

Свойства.

Имя. Type Обязательно Описание
reason строка no содержит сведения о том, что конкретно не является допустимым для сообщения

Полезные данные: пусто

Сервер занят.

Сервер занят.

Код причины: 131

Состояние: 0603

Свойства.

Имя. Type Обязательно Описание
trace-id строка no Идентификатор трассировки для корреляции с другими диагностика для ошибки

Полезные данные: пусто

Ошибка сервера

Внутренняя ошибка сервера.

Код причины: 131

Состояние: 0601

Свойства.

Имя. Type Обязательно Описание
trace-id строка no Идентификатор трассировки для корреляции с другими диагностика для ошибки

Полезные данные: пусто

Сбой целевого объекта

Целевой объект прислал ответ, но ответ был недопустимым или неправильно сформирован.

Код причины: 131

Состояние: 06A2

Свойства.

Имя. Type Обязательно Описание
reason строка no содержит сведения о том, что конкретно не является допустимым для сообщения

Полезные данные: пусто

Истекло время ожидания целевого объекта

Истекло время ожидания выполнения запроса целевым объектом.

Код причины: 131

Состояние: 06A1

Свойства.

Имя. Type Обязательно Описание
trace-id строка no Идентификатор трассировки для корреляции с другими диагностика для ошибки
reason строка no содержит сведения о том, что конкретно не является допустимым для сообщения

Полезные данные: пусто

Целевой объект недоступен

Целевой объект недоступен для выполнения запроса.

Код причины: 131

Состояние: 06A0

Свойства: нет

Полезные данные: пусто

Регулируемый

Слишком высокая частота запросов на номер SKU.

Код причины: 151

Состояние: 0501

Свойства: нет

Полезные данные: пусто

Время ожидания

Время ожидания операции истекло до ее завершения.

Код причины: 131

Состояние: 0602

Свойства.

Имя. Type Обязательно Описание
trace-id строка no Идентификатор трассировки для корреляции с другими диагностика для ошибки

Полезные данные: пусто