Partilhar via


Referência da API MQTT 5 do plano de dados do Hub IoT (preterido)

Este documento define as operações disponíveis na versão 2.0 (api-version: 2020-10-01-preview) da API do plano de dados do Hub IoT.

Nota

O suporte ao MQTT 5 no Hub IoT foi preterido e o Hub IoT tem suporte limitado a recursos para MQTT. Se sua solução precisar de suporte a MQTT v3.1.1 ou v5, recomendamos o suporte a MQTT na Grade de Eventos do Azure. Para obter mais informações, consulte Comparar o suporte MQTT no Hub IoT e na Grade de Eventos.

Operações

Obter Twin

Obter estado Twin

Pedir

Nome do tópico: $iothub/twin/get

Propriedades: nenhuma

Carga útil: vazia

Resposta de sucesso

Propriedades: nenhuma

Carga útil: Twin

Respostas alternativas

Status Nome Descrição
0100 Pedido Incorreto A mensagem de operação está malformada e não pode ser processada.
0101 Não Autorizado O cliente não está autorizado a executar a operação.
0102 Não permitido A operação não é permitida.
0501 Limitado taxa de solicitação é muito alta por SKU
0502 Quota Excedida a cota diária por SKU atual é excedida
0601 Erro do Servidor Erro interno do servidor
0602 Limite de tempo excedido a operação expirou antes de poder ser concluída
0603 Servidor ocupado Servidor ocupado

Exemplo de pseudocódigo


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

Patch Twin Relatado

Estado relatado do Patch Twin

Pedir

Nome do tópico: $iothub/twin/patch/reported

Propriedades:

Nome Type Obrigatório Description
if-versão U64 não

Carga útil: TwinState

Resposta de sucesso

Propriedades:

Nome Type Obrigatório Description
versão U64 sim Versão do estado relatado após a aplicação do patch

Carga útil: vazia

Respostas alternativas

Status Nome Descrição
0104 Falha na pré-condição A pré-condição não foi cumprida, resultando no cancelamento da solicitação
0100 Pedido Incorreto A mensagem de operação está malformada e não pode ser processada.
0101 Não Autorizado O cliente não está autorizado a executar a operação.
0102 Não permitido A operação não é permitida.
0501 Limitado taxa de solicitação é muito alta por SKU
0502 Quota Excedida a cota diária por SKU atual é excedida
0601 Erro do Servidor Erro interno do servidor
0602 Limite de tempo excedido a operação expirou antes de poder ser concluída
0603 Servidor ocupado Servidor ocupado

Exemplo de pseudocódigo


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

Receber comandos

Receber e manipular comandos

Mensagem

Nome do tópico: $iothub/commands

Propriedades:

Nome Type Obrigatório Description
sequência-não U64 sim Número de sequência da mensagem
tempo enfileirado hora sim Carimbo de data/hora de quando a mensagem entrou no sistema
contagem de entregas Sub-32 sim Número de vezes que a entrega da mensagem foi tentada
tempo de criação hora não Carimbo de data/hora de quando a mensagem foi criada (fornecido pelo remetente)
ID da mensagem string não Identidade da mensagem (fornecida pelo remetente)
ID de utilizador string não Identidade do usuário (fornecida pelo remetente)
Correlação-ID string não Identidade de correlação (fornecida pelo remetente)
Tipo de conteúdo string não determina o tipo de conteúdo da carga útil
codificação de conteúdo string não determina a codificação de conteúdo da carga útil

Carga útil: qualquer sequência de bytes

Reconhecimento de Sucesso

Indica que o comando foi aceito para manipulação pelo cliente

Propriedades: nenhuma

Carga útil: vazia

Agradecimentos Alternativos

Código da Razão Status Nome Descrição
131 0603 Abandonar Indica que o comando não será processado neste momento e deve ser entregue novamente no futuro.
131 0100 Rejeitar Indica que o cliente rejeitou o comando e ele não deve ser tentado novamente.

Exemplo de pseudocódigo


-> 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

Receba métodos diretos

Receber e lidar com chamadas do Método Direto

Pedir

Nome do tópico: $iothub/methods/{name}

Propriedades: nenhuma

Carga útil: qualquer sequência de bytes

Resposta de sucesso

Propriedades:

Nome Type Obrigatório Description
código de resposta Sub-32 sim

Carga útil: qualquer sequência de bytes

Respostas alternativas

Status Nome Descrição
06A0 Indisponível Indica que o cliente não pode ser acessado por meio dessa conexão.

Exemplo de pseudocódigo


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

Receber alterações de estado desejadas gêmeas

Receba atualizações para o estado desejado do Twin

Mensagem

Nome do tópico: $iothub/twin/patch/desired

Propriedades:

Nome Type Obrigatório Description
versão U64 sim Versão do estado desejado correspondente a esta atualização

Carga útil: TwinState

Exemplo de pseudocódigo


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

Enviar Telemetria

Postar mensagem no canal de telemetria - Hubs de Eventos por padrão ou outro ponto de extremidade por meio da configuração de roteamento.

Mensagem

Nome do tópico: $iothub/telemetry

Propriedades:

Nome Type Obrigatório Description
Tipo de conteúdo string não Traduz em content-type propriedade do sistema na mensagem postada
codificação de conteúdo string não Traduz em content-encoding propriedade do sistema na mensagem postada
ID da mensagem string não Traduz em message-id propriedade do sistema na mensagem postada
ID de utilizador string não Traduz em user-id propriedade do sistema na mensagem postada
Correlação-ID string não Traduz em correlation-id propriedade do sistema na mensagem postada
tempo de criação hora não se traduz em iothub-creation-time-utc propriedade na mensagem postada

Gorjeta

O formato de deve ser UTC sem informações de creation-time fuso horário. Por exemplo, 2021-04-21T11:30:16Z é válido, 2021-04-21T11:30:16-07:00 é inválido.

Carga útil: qualquer sequência de bytes

Reconhecimento de Sucesso

A mensagem foi postada com sucesso no canal de telemetria

Propriedades: nenhuma

Carga útil: vazia

Agradecimentos Alternativos

Código da Razão Status Nome Descrição
131 0100 Pedido Incorreto A mensagem de operação está malformada e não pode ser processada.
135 0101 Não Autorizado O cliente não está autorizado a executar a operação.
131 0102 Não permitido A operação não é permitida.
131 0601 Erro do Servidor Erro interno do servidor
151 0501 Limitado taxa de solicitação é muito alta por SKU
151 0502 Quota Excedida a cota diária por SKU atual é excedida
131 0602 Limite de tempo excedido a operação expirou antes de poder ser concluída
131 0603 Servidor ocupado Servidor ocupado

Exemplo de pseudocódigo

-> 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

Respostas

Pedido Incorreto

A mensagem de operação está malformada e não pode ser processada.

Código da razão: 131

Estado: 0100

Propriedades:

Nome Type Obrigatório Description
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga útil: vazia

Conflito

A operação está em conflito com outra operação em curso.

Código da razão: 131

Estado: 0103

Propriedades:

Nome Type Obrigatório Description
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga útil: vazia

Não permitido

A operação não é permitida.

Código da razão: 131

Estado: 0102

Propriedades:

Nome Type Obrigatório Description
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga útil: vazia

Não Autorizado

O cliente não está autorizado a executar a operação.

Código da razão: 135

Estado: 0101

Propriedades:

Nome Type Obrigatório Description
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro

Carga útil: vazia

Não Encontrado

O recurso solicitado não existe

Código da razão: 131

Estado: 0504

Propriedades:

Nome Type Obrigatório Description
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga útil: vazia

Não modificado

O recurso não foi modificado com base na pré-condição fornecida.

Código da razão: 0

Estado: 0001

Propriedades: nenhuma

Carga útil: vazia

Falha na pré-condição

A pré-condição não foi atendida, resultando no cancelamento da solicitação

Código da razão: 131

Estado: 0104

Propriedades: nenhuma

Carga útil: vazia

Quota Excedida

a cota diária por SKU atual é excedida

Código da razão: 151

Estado: 0502

Propriedades: nenhuma

Carga útil: vazia

Recursos esgotados

recurso não tem capacidade para concluir a operação

Código da razão: 131

Estado: 0503

Propriedades:

Nome Type Obrigatório Description
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga útil: vazia

Servidor ocupado

Servidor ocupado

Código da razão: 131

Estado: 0603

Propriedades:

Nome Type Obrigatório Description
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro

Carga útil: vazia

Erro do Servidor

Erro interno do servidor

Código da razão: 131

Estado: 0601

Propriedades:

Nome Type Obrigatório Description
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro

Carga útil: vazia

Alvo falhou

O alvo respondeu, mas a resposta foi inválida ou malformada

Código da razão: 131

Estado: 06A2

Propriedades:

Nome Type Obrigatório Description
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga útil: vazia

Tempo limite de destino

Tempo limite de espera que o destino conclua a solicitação

Código da razão: 131

Estado: 06A1

Propriedades:

Nome Type Obrigatório Description
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga útil: vazia

Alvo indisponível

O destino está inacessível para concluir a solicitação

Código da razão: 131

Estado: 06A0

Propriedades: nenhuma

Carga útil: vazia

Limitado

taxa de solicitação é muito alta por SKU

Código da razão: 151

Estado: 0501

Propriedades: nenhuma

Carga útil: vazia

Limite de tempo excedido

a operação expirou antes de poder ser concluída

Código da razão: 131

Estado: 0602

Propriedades:

Nome Type Obrigatório Description
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro

Carga útil: vazia