TsgcWSPClient_MQTT | Sujets MQTT

Sujets

Dans MQTT, le terme topic désigne une chaîne UTF-8 que le broker utilise pour filtrer les messages pour chaque client connecté. Le topic est composé d'un ou plusieurs niveaux de topic. Chaque niveau de topic est séparé par une barre oblique (séparateur de niveau de topic)

 

myHome / groundfloor / livingroom / temperature

 

Contrairement à une file d'attente de messages, les sujets MQTT sont très légers. Le client n'a pas besoin de créer le sujet souhaité avant de le publier ou de s'y abonner. Le courtier accepte chaque sujet valide sans aucune initialisation préalable. Notez que chaque sujet doit contenir au moins 1 caractère et que la chaîne de sujet autorise les espaces. Les sujets sont sensibles à la casse.

 

 

Jokers

Lorsqu'un client s'abonne à un sujet, il peut s'abonner au sujet exact d'un message publié ou utiliser des caractères génériques pour s'abonner à plusieurs sujets simultanément. Un caractère générique ne peut être utilisé que pour s'abonner à des sujets, pas pour publier un message. Il existe deux types de caractères génériques : _à niveau unique et _à niveaux multiples.

 

Niveau unique : +

Comme son nom l'indique, un joker à niveau unique remplace un niveau de sujet. Le symbole plus représente un joker à niveau unique dans un sujet.

 

myHome / groundfloor / + / temperature

 

Tout topic correspond à un topic avec un joker à un seul niveau s'il contient une chaîne arbitraire à la place du joker. Par exemple, un abonnement à _myhome/groundfloor/+/temperature peut produire les résultats suivants :

 

YES => myHome / groundfloor / livingroom / temperature

YES => myHome / groundfloor / kitchen / temperature

NO => myHome / groundfloor / livingroom / brightness

NO => myHome / firstfloor / livingroom / temperature

NON => myHome / groundfloor / kitchen / fridge / temperature

 

Multiniveau : #

Le joker multi-niveaux couvre plusieurs niveaux de sujet. Le symbole dièse représente le joker multi-niveaux dans le sujet. Pour que le courtier détermine quels sujets correspondent, le joker multi-niveaux doit être placé comme dernier caractère dans le sujet et précédé d'une barre oblique.

 

myHome / groundfloor / #

 

YES => myHome / groundfloor / livingroom / temperature

YES => myHome / groundfloor / kitchen / temperature

YES => myHome / groundfloor / kitchen / brightness

NO => myHome / firstfloor / kitchen / temperature

 

Lorsqu'un client s'abonne à un sujet avec un joker multi-niveaux, il reçoit tous les messages d'un sujet qui commence par le motif avant le caractère joker, quelle que soit la longueur ou la profondeur du sujet. Si vous spécifiez uniquement le joker multi-niveaux comme sujet (_#), vous recevez tous les messages envoyés au courtier MQTT.