2017-03-22 4 views
1

Ich spiele mit einem IoT-Projekt, so weit so gut, ich kann Daten zwischen Clients mit einem kostenlosen Broker teilen, den ich im Internet gefunden habe ...Ist die Nachricht im Broker nicht zeitgestempelt?

Mein Anwendungsfall ist über einen Temperatursensor, der die msg veröffentlicht unter Beibehaltung zu einem Thema Zimmer/temp

Da die msg gehalten wird, ein Client_2 steht vor der Tür letzteres macht ein Abonnement zu diesem Thema und den letzten Wert der Temperatur bekommen, dass client_1 eine Weile veröffentlicht vor .

Nun zu meiner Frage:

Ich brauche die Client_2 aswell wird, wenn die Nachricht veröffentlicht wurde, ich meine, ich weiß, möchte, wie viele Sekunden später, dass die Informationen immer bin ..

Ich bin mit Paho-Eclipse als Glas und in der Callback-here

messageArrived(java.lang.String topic, MqttMessage message) 

ist nichts darüber

warum? Wie kann ich?

Danke !! :)

Antwort

1

MQTT ist ein absichtlich geringes Protokoll, das bedeutet, dass keine unnötigen Informationen in der Nachrichtenkopfzeile enthalten sind.

Ein Zeitstempel ist kein erforderliches Feld, um eine Nachricht zu übermitteln, daher ist sie nicht enthalten.

Wenn Sie einen Zeitstempel einfügen möchten, müssen Sie ihn selbst in die Nachrichtennutzlast codieren.

+0

Ich denke, das Hinzufügen eines Zeitstempel-Wert der Nutzlast wird nicht das Loch ändern *** leichtes Gewicht *** Konzept ... –

+0

Gegeben ein Zeitstempel normalerweise braucht 32bit (4 Bytes) und ein MQTT-Header kann so klein wie 7 Bytes für eine veröffentlichte Nachricht ist es sehr signifikant – hardillb

1

Senden Sie die Daten des Temperatursensors als JSON-Daten oder XML oder einfach nur Text?

Wenn Sie JSON verwenden, dann könnten Sie tun:

{"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}} 

oder XML, könnten Sie tun:

<?xml version="1.0" encoding="UTF-8"?> 
<Temperature> 
    <TS>1451649600512</TS> 
    <Values> 
    <key1>value1</key1> 
    <key2>value2</key2> 
    </Values> 
</Temperature> 
+0

nur Text ... Senden Sie nur den Wert tatsächlich, wie 11.5 oder -2.4 –

Verwandte Themen