Centiloc Service Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

User-MQTT Connector

User MQTT est destiné à l’inter-connexion de la plateforme de donnée Centiloc avec un système de donnée client.

Une fois la communication mise en place, vous pourrez consommer tous les messages qualifiés générés par les équipements Centiloc. Ainsi, vous pourrez mettre à jour vos vos systèmes de données, de localisation et de status des différents objets qui composent votre base.

Ici, vous trouverez quelques recommandations pour maximiser la qualité de cette connexion.

Assurez le point de départ

Une fois connecté au MQTT, vous allez commencer à recevoir des évènements. Mais, qu’en est-il de la situation initiale préalable à ces évènements?

Pour assurer que votre système de donnée est à jour, nous vous conseillons de récolter le contenu de vos plateaux, juste après avec établi la connexion au User-MQTT. Vous pourrez utiliser l’attribut momentum des schémas de donnée pour comparer les évènements reçus en concurrence de cet inventaire initial pour accepter ou rejeter les premiers messages reçus.

Mettez une reconnexion automatique en place

Pour diverses raisons, la connexion au User-MQTT peut être interrompue. Assurez vous que votre connexion permette une reconnexion automatique.

Pendant la perte de connexion, vous pouvez aussi avoir perdu quelques évènements. Ainsi, nous vous encourageons à faire confiance au point de départ.

Le broker MQTT peut stocker les données que votre client aurait manquées sur une période. La configuration actuelle permet de stocker les messages oubliés pendant 2 heures.

Pour bénéficier de cette option, vous devrez configurer CleanSession à false et réutiliser le même clientID.

⚠️ Cependant, cette configuration contient un inconvénient majeur: si vous faites tourner vos clients (clientID différents, notamment en cas de scale-down), le broker MQTT conservera 2h de messages qu’il ne transmettra pas, attendant la reconnexion du client disparu

Paramètres

  • ClientID: doit être unique en cours d’utilisation. You devez préfixer ce champ avec votre tenantID.
  • CleanSession: ce champ indique au broker MQTT de conserver de la donnée en cas de déconnexion (valeur à false). Nous conservons de la donnée pendant 2h. Mais en cas de rotation des clients, si ce champ est à false, la donnée destinée à ce client ne sera pas redistribuée à d’autres clients d’un même groupe de subscription

Subscription groupée

Le broker User MQTT supporte les shared subscription. Ainsi vous pouvez connecter plusieurs instances clientes qui partage la même souscription, répartissant ainsi la charge des évènements reçus.

Attention, chaque client doit pourtant avec un clientID unique, et les sessions sont gérées par client. Ainsi, un client qui aurait cleanSession à false, à la déconnexion, se verrait réservé les prochains messages qui lui sont dûs pendant 2 heures.

Pour utiliser cette fonctionnalité, vous devez souscrire à $share/<GROUPID>/topic, avec <GROUPID> qui définit le nom de l’abonnement groupé.

Ces noms de groupes doivent être uniques, aussi prefixez-les par tenantID.

Data Model

Les messages sont produits avec 2 encodages:

Si l’occasion se présente pour une version majeure du protobuf transtreamdatamodel, nous modifierons le topic de génération pour s’approcher de la convention introduite par l’arrivé du format JSON: centiloc/{tenantID}/proto/item/vX/update

Evidemment, nous maintiendrons la compatibilité avec les versions antérieures sur les topics actuels.