Ist es notwendig, eine Axtzahl von MQTT-Themen für x Anzahl von Geräten zu erstellen?


9

Derzeit verwendet in meinem Projekt, in dem der Controller (Client) Sensordaten an den Server sendet und vom Server Feedback mit einigen zusätzlichen Daten erhält, das MQTT-Protokoll für die Kommunikation. Es gibt zwei separate Themen für Client und Server.

Zum Beispiel:

Thema1 - Client (ABONNIEREN), Server (VERÖFFENTLICHEN)
Thema2 - Client (VERÖFFENTLICHEN), Server (ABONNIEREN)

Wenn es sich bei diesem Projekt jedoch um einen Anwendungsfall einer größeren Anwendung handelt, müssen etwa 5000 Geräte irgendwo installiert werden.

Wird es also erforderlich sein, 5000 verschiedene Themen für Client und Server zu erstellen? Oder mit weniger Themen kann es gemacht werden und wie?


1
Warum ist es Ihrer Meinung nach ein Problem, viele Themen zu haben?
Hardillb

1
Wahrscheinlich, weil die Software sie alle verwalten müsste.
Mawg sagt, Monica

1
@hardillb Es ist kein Problem ... war nur neugierig ... aber kann ein MQTT-Thema ein Unterthema haben?
Ron123456

2
Natürlich sind die Themen hierarchisch, sodass jedes Schema erstellt werden kann. Die Zündkerze s3.amazonaws.com/cirrus-link-com/… enthält einige Themen pro Randknoten und Gerät hinter dem Randknoten .
Gambit Support

Schauen Sie sich diese shiftr.io/shiftr-io/demo
jsotola

Antworten:


5

Von Client zu Server können Sie die Client-ID in die Nutzdaten packen. Wenn es sich beispielsweise um JSON handelt, kann einer der Schlüssel den Wert der Client-ID haben.

Die Antwort vom Server zum Client sollte die Client-ID enthalten, damit der Broker keine Nachricht sendet, sondern diese direkt an einen verbundenen Client sendet.

Gleichzeitig können Sie Ihren Server wie folgt abonnieren: "Anfragen / +" und jeder Client veröffentlicht auf "Anfrage / {Client-ID-1}", "Anfrage / {Client-ID-2}" und Server erhalten beide mit nur einem Abonnement.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.