Compartilhar via


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

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.

Observação

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

Operations

Obter gêmeo

Obter estado gêmeo

Solicitação

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

Propriedades: nenhuma

Carga: vazia

Resposta de êxito

Propriedades: nenhuma

Carga: Gêmeo

Respostas alternativas

Status Nome Descrição
0100 Solicitação incorreta A mensagem da 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 Acelerado a taxa de solicitação é muito alta por SKU
0502 Cota Excedida a cota diária por SKU atual foi excedida
0601 Erro de servidor erro interno do servidor
0602 Tempo limite a operação atingiu o tempo limite antes de 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 do gêmeo reportado

Estado do patch do gêmeo reportado

Solicitação

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

Propriedades:

Nome Digitar Obrigatória Descrição
if-version u64 não

Payload: TwinState

Resposta de êxito

Propriedades:

Nome Digitar Obrigatória Descrição
version u64 sim Versão do estado relatado após a aplicação do patch

Carga: vazia

Respostas alternativas

Status Nome Descrição
0104 Falha na Pré-condição a pré-condição não foi atendida, resultando no cancelamento da solicitação
0100 Solicitação incorreta A mensagem da 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 Acelerado a taxa de solicitação é muito alta por SKU
0502 Cota Excedida a cota diária por SKU atual foi excedida
0601 Erro de servidor erro interno do servidor
0602 Tempo limite a operação atingiu o tempo limite antes de 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 Digitar Obrigatória Descrição
sequence-no u64 sim Número de sequência da mensagem
enqueued-time time sim Carimbo de data/hora de quando a mensagem entrou no sistema
Contagem de entrega u32 sim Número de tentativas de entrega da mensagem
creation-time time não Carimbo de data/hora de quando a mensagem foi criada (fornecida pelo remetente)
message-id string não Identidade da mensagem (fornecida pelo remetente)
user-id string não Identidade do usuário (fornecida pelo remetente)
correlation-id string não Identidade de correlação (fornecida pelo remetente)
Tipo de conteúdo string não determina o Tipo de Conteúdo de payload
content-encoding string não determina a Codificação de Conteúdo de payload

Payload: qualquer sequência de bytes

Confirmação de sucesso

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

Propriedades: nenhuma

Carga: vazia

Confirmações alternativas

Código de motivo Status Nome Descrição
131 0603 Abandonar Indica que o comando não será processado neste momento e deverá ser entregue novamente no futuro.
131 0100 Rejeitar Indica que o cliente rejeitou o comando e que 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

Receber Métodos diretos

Receber e tratar Chamadas de método direto

Solicitação

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

Propriedades: nenhuma

Payload: qualquer sequência de bytes

Resposta de êxito

Propriedades:

Nome Digitar Obrigatória Descrição
response-code u32 sim

Payload: qualquer sequência de bytes

Respostas alternativas

Status Nome Descrição
06A0 Indisponível Indica que o cliente não pode ser alcançado 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 desejado do gêmeo

Receber atualizações para o estado desejado do gêmeo

Mensagem

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

Propriedades:

Nome Digitar Obrigatória Descrição
version u64 sim Versão do estado desejado que corresponde a esta atualização

Payload: 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 do Azure por padrão ou outro ponto de extremidade por meio da configuração de roteamento.

Mensagem

Nome do tópico: $iothub/telemetry

Propriedades:

Nome Digitar Obrigatória Descrição
Tipo de conteúdo string não converte em content-type propriedade do sistema na mensagem postada
content-encoding string não converte em content-encoding propriedade do sistema na mensagem postada
message-id string não converte em message-id propriedade do sistema na mensagem postada
user-id string não converte em user-id propriedade do sistema na mensagem postada
correlation-id string não converte em correlation-id propriedade do sistema na mensagem postada
creation-time time não converte em iothub-creation-time-utc propriedade do sistema na mensagem postada

Dica

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

Payload: qualquer sequência de bytes

Confirmação de sucesso

A mensagem foi postada com êxito no canal de telemetria

Propriedades: nenhuma

Carga: vazia

Confirmações alternativas

Código de motivo Status Nome Descrição
131 0100 Solicitação incorreta A mensagem da 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 de servidor erro interno do servidor
151 0501 Acelerado a taxa de solicitação é muito alta por SKU
151 0502 Cota Excedida a cota diária por SKU atual foi excedida
131 0602 Tempo limite a operação atingiu o tempo limite antes de 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

Solicitação incorreta

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

Código do motivo: 131

Status: 0100

Propriedades:

Nome Digitar Obrigatória Descrição
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga: vazia

Conflito

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

Código do motivo: 131

Status: 0103

Propriedades:

Nome Digitar Obrigatória Descrição
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: vazia

Não Permitido

A operação não é permitida.

Código do motivo: 131

Status: 0102

Propriedades:

Nome Digitar Obrigatória Descrição
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga: vazia

Não autorizado

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

Código do motivo: 135

Status: 0101

Propriedades:

Nome Digitar Obrigatória Descrição
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro

Carga: vazia

Não encontrado

o recurso solicitado não existe

Código do motivo: 131

Status: 0504

Propriedades:

Nome Digitar Obrigatória Descrição
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga: vazia

Não modificado

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

Código do motivo: 0

Status: 0001

Propriedades: nenhuma

Carga: vazia

Falha na Pré-condição

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

Código do motivo: 131

Status: 0104

Propriedades: nenhuma

Carga: vazia

Cota Excedida

a cota diária por SKU atual foi excedida

Código do motivo: 151

Status: 0502

Propriedades: nenhuma

Carga: vazia

Recurso Esgotado

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

Código do motivo: 131

Status: 0503

Propriedades:

Nome Digitar Obrigatória Descrição
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga: vazia

Servidor ocupado

servidor ocupado

Código do motivo: 131

Status: 0603

Propriedades:

Nome Digitar Obrigatória Descrição
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro

Carga: vazia

Erro de servidor

erro interno do servidor

Código do motivo: 131

Status: 0601

Propriedades:

Nome Digitar Obrigatória Descrição
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro

Carga: vazia

Falha no destino

O destino respondeu, mas a resposta era inválida ou malformada

Código do motivo: 131

Status: 06A2

Propriedades:

Nome Digitar Obrigatória Descrição
reason string não contém informações sobre o que especificamente não é válido sobre a mensagem

Carga: vazia

Tempo limite de destino

tempo limite excedido ao aguardar o destino concluir a solicitação

Código do motivo: 131

Status: 06A1

Propriedades:

Nome Digitar Obrigatória Descrição
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: vazia

Destino não disponível

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

Código do motivo: 131

Status: 06A0

Propriedades: nenhuma

Carga: vazia

Acelerado

a taxa de solicitação é muito alta por SKU

Código do motivo: 151

Status: 0501

Propriedades: nenhuma

Carga: vazia

Tempo limite

a operação atingiu o tempo limite antes de ser concluída

Código do motivo: 131

Status: 0602

Propriedades:

Nome Digitar Obrigatória Descrição
trace-id string não ID de rastreamento para correlação com outros diagnósticos para o erro

Carga: vazia