Esquema de eventos para mensagens MQTT roteadas

As mensagens MQTT são roteadas para um tópico da Grade de Eventos como CloudEvents de acordo com a seguinte lógica:

Para mensagens MQTT v3 ou mensagens MQTT v5 com um indicador de formato de conteúdo igual a 0, o conteúdo será encaminhado no objeto data_base64 e codificado como uma cadeia de caracteres Base64 de acordo com o exemplo de esquema a seguir.

{
	"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 mensagens MQTT v5 com o tipo de conteúdo “application/json; charset=utf-8” ou com um indicador de formato de conteúdo igual a 1, o conteúdo será encaminhado no objeto de dados e a mensagem será serializada como um JSON (ou uma cadeia de caracteres JSON se o conteúdo não for um JSON). A definição do tipo de conteúdo e/ou do indicador de formato de conteúdo permite filtrar as propriedades de conteúdo conforme o conteúdo é encaminhado dentro do campo de dados no estado em que se encontra. Saiba mais sobre a filtragem no conteúdo da mensagem.

{
	"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
	}
}

Para mensagens MQTT v5 que já estão envolvidas em um CloudEvent de acordo com a Associação de Protocolo MQTT para CloudEvents, seja usando o modo de conteúdo binário ou o modo de conteúdo estruturado na codificação JSON (UTF-8), o evento será encaminhado com os atributos padrão originais do CloudEvents após os enriquecimentos de acordo com o exemplo de esquema a seguir.

{
	"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"
	}
}

Próximas etapas:

Use os seguintes artigos para saber mais sobre roteamento:

Guia de Início Rápido:

Conceitos: