Informazioni di riferimento sulle API MQTT 5 del piano dati hub IoT (deprecato)
Questo documento definisce le operazioni disponibili nella versione 2.0 (api-version: 2020-10-01-preview
) dell'API del piano dati di hub IoT.
Nota
Il supporto di MQTT 5 in hub IoT è deprecato e hub IoT supporta funzionalità limitate per MQTT. Se la soluzione richiede il supporto MQTT v3.1.1 o v5, è consigliabile supportare MQTT in Griglia di eventi di Azure. Per altre informazioni, vedere Confrontare il supporto MQTT in hub IoT e Griglia di eventi.
Operazioni
Ottieni gemello
Ottenere lo stato del dispositivo gemello
Richiedi
Nome argomento: $iothub/twin/get
Proprietà: nessuno
Payload: vuoto
Risposta riuscita
Proprietà: nessuno
Payload: Gemello
Risposte alternative
Status | Nome | Descrizione |
---|---|---|
0100 | Richiesta non valida | Il messaggio dell'operazione non è valido e non può essere elaborato. |
0101 | Non autorizzato | Il client non è autorizzato a eseguire l'operazione. |
0102 | Non consentito | L'operazione non è consentita. |
0501 | Sospensione causata dal servizio Microsoft FullText | la frequenza delle richieste è troppo elevata per OGNI SKU |
0502 | Quota superata | quota giornaliera per SKU corrente superata |
0601 | Errore del server | errore interno del server |
0602 | Timeout | timeout dell'operazione prima del completamento |
0603 | Server occupato | server occupato |
Esempio di pseudo-codice
-> PUBLISH
QoS: 0
Topic: $iothub/twin/get
<- PUBLISH
QoS: 0
Topic: $iothub/responses
Patch Twin Segnalata
Stato segnalato di Patch Twin
Richiedi
Nome argomento: $iothub/twin/patch/reported
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
if-version | u64 | no |
Payload: TwinState
Risposta riuscita
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
versione | u64 | yes | Versione dello stato segnalato dopo l'applicazione della patch |
Payload: vuoto
Risposte alternative
Status | Nome | Descrizione |
---|---|---|
0104 | Precondizione non riuscita | precondizione non è stata soddisfatta con conseguente annullamento della richiesta |
0100 | Richiesta non valida | Il messaggio dell'operazione non è valido e non può essere elaborato. |
0101 | Non autorizzato | Il client non è autorizzato a eseguire l'operazione. |
0102 | Non consentito | L'operazione non è consentita. |
0501 | Sospensione causata dal servizio Microsoft FullText | la frequenza delle richieste è troppo elevata per OGNI SKU |
0502 | Quota superata | quota giornaliera per SKU corrente superata |
0601 | Errore del server | errore interno del server |
0602 | Timeout | timeout dell'operazione prima del completamento |
0603 | Server occupato | server occupato |
Esempio di pseudo-codice
-> PUBLISH
QoS: 0
Topic: $iothub/twin/patch/reported
[if-version: <u64>]
<- PUBLISH
QoS: 0
Topic: $iothub/responses
Comandi di ricezione
Ricevere e gestire i comandi
Message
Nome argomento: $iothub/commands
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
sequence-no | u64 | yes | Numero di sequenza del messaggio |
tempo accodato | Ora | yes | Timestamp di quando il messaggio è entrato nel sistema |
delivery-count | u32 | yes | Numero di tentativi di recapito del messaggio |
creation-time | Ora | no | Timestamp di quando il messaggio è stato creato (fornito dal mittente) |
message-id | string | no | Identità del messaggio (fornita dal mittente) |
user-id | string | no | Identità utente (fornita dal mittente) |
correlation-id | string | no | Identità di correlazione (fornita dal mittente) |
Tipo di contenuto | string | no | determina il tipo di contenuto del payload |
content-encoding | string | no | determina la codifica del contenuto del payload |
Payload: qualsiasi sequenza di byte
Riconoscimento dell'esito positivo
Indica che il comando è stato accettato per la gestione da parte del client
Proprietà: nessuno
Payload: vuoto
Riconoscimenti alternativi
Codice motivo | Status | Nome | Descrizione |
---|---|---|---|
131 | 0603 | Abbandono | Indica che il comando non verrà elaborato in questo momento e dovrebbe essere recapitato di nuovo in futuro. |
131 | 0100 | Rifiuto | Indica che il client ha rifiutato il comando e non deve essere provato di nuovo. |
Esempio di pseudo-codice
-> 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
Ricevere metodi diretti
Ricevere e gestire chiamate al metodo diretto
Richiedi
Nome argomento: $iothub/methods/{name}
Proprietà: nessuno
Payload: qualsiasi sequenza di byte
Risposta riuscita
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
response-code | u32 | yes |
Payload: qualsiasi sequenza di byte
Risposte alternative
Status | Nome | Descrizione |
---|---|---|
06A0 | Non disponibile | Indica che il client non è raggiungibile tramite questa connessione. |
Esempio di pseudo-codice
-> SUBSCRIBE
- Topic: methods/{name}
QoS: 0
<- SUBACK
<- PUBLISH
QoS: 0
Topic: $iothub/methods/{name}
-> PUBLISH
QoS: 0
Topic: $iothub/responses
Ricevere modifiche dello stato desiderato del dispositivo gemello
Ricevere gli aggiornamenti allo stato desiderato di Twin
Message
Nome argomento: $iothub/twin/patch/desired
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
versione | u64 | yes | Versione dello stato desiderato corrispondente a questo aggiornamento |
Payload: TwinState
Esempio di pseudo-codice
-> SUBSCRIBE
- Topic: $iothub/twin/patch/desired
QoS: 0
<- PUBLISH
QoS: 0
Topic: $iothub/twin/patch/desired
version: <u64>
Payload: ...
Inviare dati di telemetria
Inviare un messaggio al canale di telemetria: Hub eventi per impostazione predefinita o altri endpoint tramite la configurazione del routing.
Message
Nome argomento: $iothub/telemetry
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
Tipo di contenuto | string | no | converte in content-type proprietà di sistema nel messaggio pubblicato |
content-encoding | string | no | converte in content-encoding proprietà di sistema nel messaggio pubblicato |
message-id | string | no | converte in message-id proprietà di sistema nel messaggio pubblicato |
user-id | string | no | converte in user-id proprietà di sistema nel messaggio pubblicato |
correlation-id | string | no | converte in correlation-id proprietà di sistema nel messaggio pubblicato |
creation-time | Ora | no | converte in iothub-creation-time-utc proprietà nel messaggio pubblicato |
Suggerimento
Il formato di creation-time
deve essere UTC senza informazioni sul fuso orario. Ad esempio, 2021-04-21T11:30:16Z
è valido e 2021-04-21T11:30:16-07:00
non è valido.
Payload: qualsiasi sequenza di byte
Riconoscimento dell'esito positivo
Il messaggio è stato pubblicato correttamente nel canale di telemetria
Proprietà: nessuno
Payload: vuoto
Riconoscimenti alternativi
Codice motivo | Status | Nome | Descrizione |
---|---|---|---|
131 | 0100 | Richiesta non valida | Il messaggio dell'operazione non è valido e non può essere elaborato. |
135 | 0101 | Non autorizzato | Il client non è autorizzato a eseguire l'operazione. |
131 | 0102 | Non consentito | L'operazione non è consentita. |
131 | 0601 | Errore del server | errore interno del server |
151 | 0501 | Sospensione causata dal servizio Microsoft FullText | la frequenza delle richieste è troppo elevata per OGNI SKU |
151 | 0502 | Quota superata | quota giornaliera per SKU corrente superata |
131 | 0602 | Timeout | timeout dell'operazione prima del completamento |
131 | 0603 | Server occupato | server occupato |
Esempio di pseudo-codice
-> 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
Risposte
Richiesta non valida
Il messaggio dell'operazione non è valido e non può essere elaborato.
Codice motivo: 131
Stato: 0100
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
reason | string | no | contiene informazioni su ciò che in particolare non è valido sul messaggio |
Payload: vuoto
Conflitto
L'operazione è in conflitto con un'altra operazione in corso.
Codice motivo: 131
Stato: 0103
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
trace-id | string | no | ID di traccia per la correlazione con altre diagnostica per l'errore |
reason | string | no | contiene informazioni su ciò che in particolare non è valido sul messaggio |
Payload: vuoto
Non consentito
L'operazione non è consentita.
Codice motivo: 131
Stato: 0102
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
reason | string | no | contiene informazioni su ciò che in particolare non è valido sul messaggio |
Payload: vuoto
Non autorizzato
Il client non è autorizzato a eseguire l'operazione.
Codice motivo: 135
Stato: 0101
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
trace-id | string | no | ID di traccia per la correlazione con altre diagnostica per l'errore |
Payload: vuoto
Non trovato
la risorsa richiesta non esiste
Codice motivo: 131
Stato: 0504
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
reason | string | no | contiene informazioni su ciò che in particolare non è valido sul messaggio |
Payload: vuoto
Non modificato
La risorsa non è stata modificata in base alla precondizione fornita.
Codice motivo: 0
Stato: 0001
Proprietà: nessuno
Payload: vuoto
Precondizione non riuscita
La precondizione non è stata soddisfatta con conseguente annullamento della richiesta
Codice motivo: 131
Stato: 0104
Proprietà: nessuno
Payload: vuoto
Quota superata
quota giornaliera per SKU corrente superata
Codice motivo: 151
Stato: 0502
Proprietà: nessuno
Payload: vuoto
Risorsa esaurita
la risorsa non ha capacità di completare l'operazione
Codice motivo: 131
Stato: 0503
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
reason | string | no | contiene informazioni su ciò che in particolare non è valido sul messaggio |
Payload: vuoto
Server occupato
server occupato
Codice motivo: 131
Stato: 0603
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
trace-id | string | no | ID di traccia per la correlazione con altre diagnostica per l'errore |
Payload: vuoto
Errore del server
errore interno del server
Codice motivo: 131
Stato: 0601
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
trace-id | string | no | ID di traccia per la correlazione con altre diagnostica per l'errore |
Payload: vuoto
Destinazione non riuscita
Destinazione ha risposto ma la risposta non è valida o non è valida
Codice motivo: 131
Stato: 06A2
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
reason | string | no | contiene informazioni su ciò che in particolare non è valido sul messaggio |
Payload: vuoto
Timeout di destinazione
timeout in attesa del completamento della richiesta da parte della destinazione
Codice motivo: 131
Stato: 06A1
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
trace-id | string | no | ID di traccia per la correlazione con altre diagnostica per l'errore |
reason | string | no | contiene informazioni su ciò che in particolare non è valido sul messaggio |
Payload: vuoto
Destinazione non disponibile
La destinazione non è raggiungibile per completare la richiesta
Codice motivo: 131
Stato: 06A0
Proprietà: nessuno
Payload: vuoto
Sospensione causata dal servizio Microsoft FullText
la frequenza delle richieste è troppo elevata per OGNI SKU
Codice motivo: 151
Stato: 0501
Proprietà: nessuno
Payload: vuoto
Timeout
timeout dell'operazione prima del completamento
Codice motivo: 131
Stato: 0602
Proprietà:
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
trace-id | string | no | ID di traccia per la correlazione con altre diagnostica per l'errore |
Payload: vuoto