Envelopagem das Mensagens

Todas as mensagens trafegadas na aplicação devem ser envelopadas conforme as definições desse documento.

Envelope Padrão

O envelope é um padrão JSON que contém informações básicas de rastreamento da mensagem, bem como seu próprio conteúdo. Uma mensagem sempre tem como origem ou destino um controlador específico. Dessa forma, o envelope deve conter sempre o id do controlador.

Os seguintes campos são obrigatórios no envelope:

Campos Obrigatórios

Campo Tipo Descrição
tipoMensagem Texto Código único que identifica o tipo de mensagem que está dentro do envelope. As mensagens que podem ser envelopadas estão definidas na seção mensagens
idControlador UUID Identificador do Controlador
idMensagem UUID Identificador único e global no formato UUID que identifica unicamente essa mensagem. Deve ser gerado no momento da construção do envelope
destino Texto Tópico MQTT em que a mensagem deve ser publicada. Para lista de tópicos veja a seção MQTT
qos Inteiro Qualidade do serviço no protocolo MQTT que deve ser empregado para esse envelope. Deve estar de acordo com os requisitos da mensagem
carimboDeTempo Número Longo Carimbo de tempo referente ao momento de criação do envelope. Deve estar no formato milissegundo desde 1 de janeiro de 1970 UTC
conteudo Objeto JSON ou Texto Criptografado representando um Objeto JSON Mensagem a ser entregue pelo envelope. Pode ser diretamente o objeto JSON ou, nos casos onde seja requerido, criptografado e convertido para BASE64
emResposta UUID Identificador único e global no formato UUID da mensagem original para quando essa for uma resposta

A seguir é apresentado um exemplo de envelope:

Exemplo de Envelope

  {
    "tipoMensagem": "CONEXAO",
    "idControlador":"56074e06-439b-409f-b37d-4e0dc884084f",
    "idMensagem": "56074e06-439b-409f-b37d-4e0dc8840856"
    "destino": "/controladores/56074e06-439b-409f-b37d-4e0dc884084f/atualizarConfiguracoes",
    "qos": 1,
    "carimboDeTempo": "1471272798600",
    "conteudo" : {},
    "emResposta": "56074e06-439b-409f-b37d-4e0dc884084d"
  }