Tópicos do MQTT - AWS IoT Core

Tópicos do MQTT

Os tópicos do MQTT identificam mensagens do AWS IoT. Os cliente do AWS IoT identificam as mensagens que publicam, dando nomes de tópicos às mensagens. Os clientes identificam as mensagens que desejam assinar (receber) registrando um filtro de tópico com o AWS IoT Core. O agente de mensagens usa nomes de tópicos e filtros de tópicos para rotear mensagens de clientes de publicação a clientes assinatura.

O agente de mensagens usa tópicos para identificar mensagens enviadas usando MQTT e HTTP para o URL da mensagem HTTPS.

Embora o AWS IoT seja compatível com alguns tópicos reservados do sistema, a maioria dos tópicos MQTT é criada e gerenciada por você, o designer do sistema. O AWS IoT usa tópicos para identificar mensagens recebidas de clientes de publicação e selecionar mensagens a serem enviadas para clientes assinantes, conforme descrito nas seções a seguir. Antes de criar um namespace de tópico para seu sistema, revise as características dos tópicos MQTT para criar a hierarquia de nomes de tópicos que funciona melhor para seu sistema de IoT.

Nomes de tópicos

Os nomes de tópicos e os filtros de tópicos são strings codificadas em UTF-8. Eles podem representar uma hierarquia de informações usando o caractere barra (/) para separar os níveis da hierarquia. Por exemplo, o nome deste tópico pode se referir a um sensor de temperatura no compartimento 1:

  • sensor/temperature/room1

Neste exemplo, também pode haver outros tipos de sensores em outros compartimentos com nomes de tópicos, como:

  • sensor/temperature/room2

  • sensor/humidity/room1

  • sensor/humidity/room2

nota

Ao considerar os nomes de tópicos para as mensagens no sistema, lembre-se de que:

  • Os nomes de tópicos e os filtros de tópico diferenciam letras maiúsculas de minúsculas.

  • Os nomes de tópicos não devem conter informações de identificação pessoal.

  • Os nomes de tópicos que começam com $ são tópicos reservados para serem usados somente pelo AWS IoT Core.

  • O AWS IoT Core não pode enviar ou receber mensagens entreConta da AWS ou regiões.

Para obter mais informações sobre como criar seus nomes de tópicos e namespace, consulte nosso whitepaper, Projetando tópicos em MQTT para AWS IoT Core.

Para exemplos de como os aplicativos podem publicar e assinar mensagens, comece com Tutoriais de conceitos básicos do AWS IoT Core e AWS IoT Device SDKs, Mobile SDKs e AWS IoT Device Client.

Importante

O namespace de tópico é limitado a uma Conta da AWS e região. Por exemplo, o tópico sensor/temp/room1 usado por uma Conta da AWS em uma região é distinto do tópico sensor/temp/room1 usado pela mesma conta da AWS em outra região ou usado por qualquer outra Conta da AWS em qualquer região.

Tópico ARN

Todos os ARNs de tópicos (nomes de recursos da Amazon) têm o seguinte formato:

arn:aws:iot:aws-region:AWS-account-ID:topic/Topic

Por exemplo, arn:aws:iot:us-west-2:123EXAMPLE456:topic/application/topic/device/sensor é um ARN para o tópico application/topic/device/sensor.

Filtros de tópicos

Os clientes assinantes registram filtros de tópico com o agente de mensagens para especificar os tópicos de mensagem que o agente de mensagens deve enviar para eles. Um filtro de tópico pode ser o nome de um tópico único para assinar o nome de um tópico único ou pode incluir caracteres curinga para assinar vários nomes de tópicos ao mesmo tempo.

Os clientes de publicação não podem usar caracteres curinga nos nomes de tópicos que publicam.

A tabela a seguir lista os caracteres curinga que podem ser usados em um filtro de tópico.

Curingas de tópicos
Caractere curinga Correspondências Observações
# Todas as strings de caracteres em e abaixo de seu nível na hierarquia de tópicos.

Deve ser o último caractere no filtro de tópico.

Deve ser o único caractere no nível da hierarquia de tópicos.

Pode ser usado em um filtro de tópico que também contém o caractere curinga +.

+ Qualquer string no nível que contém o caractere.

Deve ser o único caractere no nível da hierarquia de tópicos.

Pode ser usado em vários níveis de um filtro de tópico.

Exemplos de uso de curingas com o nome de tópico do sensor anterior:

  • Uma assinatura de sensor/# recebe mensagens publicadas em sensor/, sensor/temperature, sensor/temperature/room1, mas não mensagens publicadas em sensor.

  • Uma assinatura de sensor/+/room1 recebe mensagens publicadas em sensor/temperature/room1 e sensor/humidity/room1, mas não mensagens enviadas para sensor/temperature/room2 ou sensor/humidity/room2.

ARN do filtro do tópico

Todos os filtros de tópicos dos Nomes de Recursos do Amazon (ARNs) têm o seguinte formato:

arn:aws:iot:aws-region:AWS-account-ID:topicfilter/TopicFilter

Por exemplo, arn:aws:iot:us-west-2:123EXAMPLE456:topicfilter/application/topic/+/sensor é um ARN para o filtro de tópicos application/topic/+/sensor.