Compartir a través de


Esquema de eventos para mensajes MQTT enrutados

Los mensajes MQTT se enrutan a un tema de Event Grid como CloudEvents según la lógica siguiente:

Para los mensajes MQTT v3 o los mensajes MQTT v5 de un indicador de formato de carga =0, la carga se reenviará en el objeto data_base64 y se codificará como una cadena de base 64 según el ejemplo de esquema siguiente.

{
	"specversion": "1.0",
	"id": "9aeb0fdf-c01e-0131-0922-9eb54906e20", // unique id stamped by the service.
	"time": "2019-11-18T15:13:39.4589254Z", // timestamp when the message was received by the service.
	"type": "MQTT.EventPublished", // set type for all MQTT messages enveloped by the service.
	"source": "testnamespace", // namespace name
	"subject": "campus/buildings/building17", // topic of the MQTT publish request.
	"data_base64": 
    {
		IlRlbXAiOiAiNzAiLAoiaHVtaWRpdHkiOiAiNDAiCg==
	}
}

Para los mensajes MQTT v5 de tipo de contenido= "application/json; charset=utf-8" o de un indicador de formato de carga =1, la carga se reenviará en el objeto de datos y el mensaje se serializará como JSON (o una cadena JSON si la carga no es JSON). Establecer el tipo de contenido o el indicador de formato de carga le permite filtrar por las propiedades de carga tal y como se reenvía en el campo de datos. Obtenga más información sobre el filtrado de la carga del mensaje.

{
	"specversion": "1.0",
	"id": "9aeb0fdf-c01e-0131-0922-9eb54906e20", // unique id stamped by the service.
	"time": "2019-11-18T15:13:39.4589254Z", // timestamp when the message was received by the service.
	"type": "MQTT.EventPublished", // set type for all MQTT messages enveloped by the service.
	"source": "testnamespace", // namespace name
	"subject": "campus/buildings/building17", // topic of the MQTT publish request. 
	"data": 
    {
		"Temp": 70,
		"humidity": 40
	}
}

En el caso de los mensajes MQTT v5 que ya están en un CloudEvent de acuerdo con el enlace de protocolo MQTT para CloudEvents, tanto si se usa el modo de contenido binario como el modo de contenido estructurado en la codificación JSON (UTF-8), el evento se reenviará con los atributos de CloudEvents predeterminados originales después de los enriquecimientos según el ejemplo de esquema siguiente.

{
	"specverion": "1.0",
	"id": "9aeb0fdf-c01e-0131-0922-9eb54906e20", // original id stamped by the client. 
	"time": "2019-11-18T15:13:39.4589254Z", // timestamp when the message was received by the client
	"type": "Custom.Type", // original type value stamped by the client.
	"source": "Custom.Source", // original source value stamped by the client.
	"subject": " Custom.Subject", // original subjectvalue stamped by the client.
	"data": 
    {
		"Temp": "70",
		"humidity": "40"
	}
}

Pasos siguientes:

Para obtener más información sobre el enrutamiento, use los siguientes artículos:

Inicio rápido:

Conceptos: