2016-07-06 7 views
0

Es scheint einige Best Practices in Bezug auf MQTT-Themen zu geben. Einige sind auf der Website hivemq angelegt (unter anderem):Ist es sinnvoll, Themenstrings zu versionieren?

Seien Sie kein verwenden führende vorwärts
slash Sie keine Leerzeichen verwenden in einem Thema
Halten Sie das Thema kurz und prägnant

Ein Beispiel Thema war

myhome/Wohnzimmer/Temperatur

Meine Frage: Könnte es eine gute Idee sein, eine Versionsebene in die Themenzeichenfolge aufzunehmen? Zum Beispiel:

v1/myhome/livingroom/sensor/1/temperature 
v2/myhome/livingroom/sensor/2/temperature 

ich auch ein wenig von Versionen in Ruhe apis hier denke. In Version 1 sende ich die Temperatur als einfache Zeichenfolge. Aber später könnte ich entschieden haben, dass ich ein JSON-Format für die Nachrichtennutzlast für neuere Sensoren verwenden möchte.

Die empfangenden Clients konnten die Version überprüfen und die Nutzlast entsprechend handhaben.

+0

Diese Frage Meinung zu schwer sein wird, da es keine richtige/falsche Antwort ist also nicht wirklich geeignet für Stapelüberlauf (http://stackoverflow.com/help/dont-ask). – hardillb

+0

Die Mailingliste MQTT.org (http://mqtt.org/get-involved) könnte ein besserer Veranstaltungsort sein – hardillb

Antwort

0

Wenn Sie mehrere Versionen nicht gleichzeitig unterstützen müssen, tun Sie es nicht. Wenn Sie unbedingt müssen, würde ich vorschlagen, Sie tun es auf der Sensor-Ebene, nicht root. Dies gibt Ihnen eine gewisse Flexibilität einige Sensoren zu ersetzen, nicht andere, zB:

myhome/livingroom/sensor/1/v1/temperature 

oder

myhome/livingroom/sensor/1/temperature/v1