Creare e leggere messaggi dell'hub IoTCreate and read IoT Hub messages

Per supportare l'interoperabilità senza problemi tra i protocolli, l'hub IoT definisce un formato di messaggio comune per tutti i protocolli del dispositivo.To support seamless interoperability across protocols, IoT Hub defines a common message format for all device-facing protocols. Il formato del messaggio viene usato per i messaggi da dispositivo a cloud e da cloud a dispositivo.This message format is used for both device-to-cloud and cloud-to-device messages. Un messaggio dell'hub IoT è costituito da:An IoT Hub message consists of:

  • Un set di proprietà del sistema.A set of system properties. Proprietà impostate o interpretate dall'hub IoT.Properties that IoT Hub interprets or sets. Il set è predeterminato.This set is predetermined.
  • Un set di proprietà dell'applicazione.A set of application properties. Dizionario di proprietà stringa che l'applicazione può definire e a cui può accedere senza dover deserializzare il corpo del messaggio.A dictionary of string properties that the application can define and access, without needing to deserialize the message body. Queste proprietà non vengono mai modificate dall'hub IoT.IoT Hub never modifies these properties.
  • Corpo binario opaco.An opaque binary body.

I valori e i nomi di proprietà possono contenere solo caratteri ASCII alfanumerici e {'!', '#', '$', '%, '&', "'", '*', '+', '-', '.', '^', '_', '`', '|', '~'}`\` quando:</span><span class="sxs-lookup"><span data-stu-id="3fd89-114">Property names and values can only contain ASCII alphanumeric characters, plus{'!', '#', '$', '%, '&', "'", '*', '+', '-', '.', '^', '_', '', '|', '~'}` when you:

  • Si inviano messaggi da dispositivo a cloud usando il protocollo HTTPS.Send device-to-cloud messages using the HTTPS protocol.
  • Invio di messaggi da cloud a dispositivo.Send cloud-to-device messages.

Per altre informazioni sulla codifica e la decodifica dei messaggi inviati tramite diversi protocolli, vedere Azure IoT SDK.For more information about how to encode and decode messages sent using different protocols, see Azure IoT SDKs.

La tabella seguente riporta il set delle proprietà di sistema nei messaggi dell'hub IoT.The following table lists the set of system properties in IoT Hub messages.

ProprietàProperty DescrizioneDescription
MessageIdMessageId Un identificatore configurabile dall'utente per il messaggio, usato per i modelli di richiesta-risposta.A user-settable identifier for the message used for request-reply patterns. Formato: stringa con distinzione tra maiuscole e minuscole (con lunghezza massima di 128 caratteri) di caratteri alfanumerici ASCII a 7 bit + {'-', ':',’.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''}.Format: A case-sensitive string (up to 128 characters long) of ASCII 7-bit alphanumeric characters + {'-', ':',’.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''}.
Numero di sequenzaSequence number Numero, univoco per ogni dispositivo-coda, assegnato dall'hub IoT a ogni messaggio da cloud a dispositivo.A number (unique per device-queue) assigned by IoT Hub to each cloud-to-device message.
ToTo Destinazione specificata nei messaggi da cloud a dispositivo.A destination specified in Cloud-to-Device messages.
ExpiryTimeUtcExpiryTimeUtc Data e ora della scadenza del messaggio.Date and time of message expiration.
EnqueuedTimeEnqueuedTime Date e ora del messaggio da cloud a dispositivo ricevute dall'hub IoT.Date and time the Cloud-to-Device message was received by IoT Hub.
CorrelationIdCorrelationId Proprietà stringa in un messaggio di risposta che contiene in genere il valore MessageId della richiesta nei modelli richiesta-risposta.A string property in a response message that typically contains the MessageId of the request, in request-reply patterns.
UserIdUserId ID usato per specificare l'origine dei messaggi.An ID used to specify the origin of messages. Quando i messaggi vengono generati dall'hub IoT, viene impostata su {iot hub name}.When messages are generated by IoT Hub, it is set to {iot hub name}.
AckAck Generatore di messaggi con commenti.A feedback message generator. Questa proprietà viene usata nei messaggi da cloud a dispositivo per richiedere all'hub IoT di generare messaggi con commenti come risultato dell'utilizzo del messaggio da parte del dispositivo.This property is used in cloud-to-device messages to request IoT Hub to generate feedback messages as a result of the consumption of the message by the device. I valori possibili sono i seguenti: none (predefinito): non viene generato alcun messaggio con commenti, positive: si riceve un messaggio con commenti se il messaggio è stato completato, negative: si riceve un messaggio con commenti se il messaggio è scaduto o se è stato raggiunto il numero massimo di recapiti senza il completamento da parte del dispositivo, full: sia per esito positivo che negativo.Possible values: none (default): no feedback message is generated, positive: receive a feedback message if the message was completed, negative: receive a feedback message if the message expired (or maximum delivery count was reached) without being completed by the device, or full: both positive and negative. Per altre informazioni, vedere Commenti sui messaggi.For more information, see Message feedback.
ConnectionDeviceIdConnectionDeviceId ID impostato dall'hub IoT sui messaggi da dispositivo a cloud.An ID set by IoT Hub on device-to-cloud messages. Contiene il valore deviceId del dispositivo che ha inviato il messaggio.It contains the deviceId of the device that sent the message.
ConnectionDeviceGenerationIdConnectionDeviceGenerationId ID impostato dall'hub IoT sui messaggi da dispositivo a cloud.An ID set by IoT Hub on device-to-cloud messages. Contiene il valore generationId (come indicato in Proprietà delle identità dei dispositivi) del dispositivo che ha inviato il messaggio.It contains the generationId (as per Device identity properties) of the device that sent the message.
ConnectionAuthMethodConnectionAuthMethod Metodo di autenticazione impostato dall'hub IoT sui messaggi da dispositivo a cloud.An authentication method set by IoT Hub on device-to-cloud messages. Questa proprietà contiene informazioni sul metodo di autenticazione usato per autenticare il dispositivo che invia il messaggio.This property contains information about the authentication method used to authenticate the device sending the message. Per altre informazioni, vedere la sezione sull'anti-spoofing da dispositivo a cloud.For more information, see Device to cloud anti-spoofing.

Dimensioni dei messaggiMessage size

L'hub IoT misura le dimensioni dei messaggi in modo indipendente dal protocollo, prendendo in considerazione solo il payload effettivo.IoT Hub measures message size in a protocol-agnostic way, considering only the actual payload. Le dimensioni in byte vengono calcolate come somma degli elementi seguenti:The size in bytes is calculated as the sum of the following:

  • Dimensioni del corpo in byte.The body size in bytes.
  • Dimensioni in byte di tutti i valori delle proprietà di sistema dei messaggi.The size in bytes of all the values of the message system properties.
  • Dimensioni in byte di tutti i nomi e i valori delle proprietà dell'utente.The size in bytes of all user property names and values.

I nomi e i valori delle proprietà sono limitati ai caratteri ASCII, in modo che la lunghezza delle stringhe sia uguale alle dimensioni in byte.Property names and values are limited to ASCII characters, so the length of the strings equals the size in bytes.

Passaggi successiviNext steps

Per informazioni sulla dimensione massima dei messaggi nell'hub IoT, vedere Quote e limitazioni dell'hub IoT.For information about message size limits in IoT Hub, see IoT Hub quotas and throttling.

Per informazioni su come creare e leggere i messaggi dell'hub IoT in diversi linguaggi di programmazione, vedere le esercitazioni di Introduzione.To learn how to create and read IoT Hub messages in various programming languages, see the Get started tutorials.