Est-il nécessaire de créer un nombre ax de sujets MQTT pour x nombre d'appareils?

9

Actuellement dans mon projet dans lequel le contrôleur (client) envoie des données de capteur au serveur et reçoit des commentaires du serveur avec des données supplémentaires, utilise le protocole MQTT pour la communication. Il comporte 2 rubriques distinctes pour le client et le serveur.

Par exemple:

Sujet1 - Client (ABONNEMENTS), serveur (PUBLICATIONS)
Sujet2 - Client (PUBLICATIONS), serveur (ABONNEMENTS)

Mais si ce projet est le cas d'utilisation d'une plus grande application, disons que quelque 5000 appareils doivent être installés quelque part.

Alors, sera-t-il nécessaire de créer 5000 sujets différents pour le client et le serveur? Ou avec des sujets moins importants, cela peut être fait et comment?

ron123456
la source
1
Pourquoi pensez-vous que c'est un problème d'avoir beaucoup de sujets?
hardillb
1
Probablement parce que le logiciel devrait tous les gérer.
Mawg dit réintégrer Monica le
1
@hardillb Ce n'est pas un problème ... c'était juste curieux ... mais un sujet MQTT peut-il avoir un sous-sujet?
ron123456
2
Bien sûr, les sujets sont hiérarchiques, donc tout schéma peut être conçu. Sparkplug s3.amazonaws.com/cirrus-link-com/… a quelques sujets par nœud périphérique et périphérique derrière le nœud périphérique.
Support Gambit
jetez un oeil à ce shiftr.io/shiftr-io/demo
jsotola

Réponses:

5

Du client au serveur, vous pouvez regrouper l'ID client dans la charge utile, par exemple s'il s'agit de JSON, l'une des clés peut avoir une valeur d'ID client.

La réponse du serveur au client doit contenir l'identifiant client afin de ne pas diffuser de message, mais de l'envoyer directement à un client connecté.

En même temps, vous pouvez abonner votre serveur à quelque chose comme: "demandes / +" et chaque client publiera sur "demande / {client-id-1}", "demande / {client-id-2}" et serveur recevra les deux avec un seul abonnement.

châle
la source