2017-01-21 2 views
0

Die Geräte senden ASCII-Zeichenfolgen an den Broker. Ich habe eine Schnur in der Nutzlast erwartet. Aber der MQTT-Knoten von Node-Red behandelt ihn als binären Blob.Knoten Rot MQTT-Knoten: Payload enthält Byte-Array statt String

Ich bin mir bewusst, dass MQTT alle Nutzlasten als Blobs behandelt. Aber derselbe Knoten zeigt Payload korrekt als Zeichenfolge an, wenn die Nachricht von einem Desktop-MQTT-Client gesendet wird. Das scheint also ein Codierungsproblem zu sein.

Während es nicht schwierig ist, einen weiteren Knoten hinzuzufügen, um die Daten in String zu konvertieren, habe ich mich gefragt, ob es einen besseren Weg gibt, um dies zu handhaben - wie einige Einstellungen in Node-rot, Nutzdaten als ASCII für bestimmte Knoten zu interpretieren.

Antwort

0

Der MQTT-in-Knoten verwendet den Knoten is-utf8 npm, um die eingehenden Nachrichten zu testen, um festzustellen, ob es sich um Zeichenfolgen handelt.

Wenn Sie Puffer erhalten, dann schlägt die eingehende Nachricht diesen Test fehl, ich würde überprüfen, welche Codierung das "Gerät" verwendet, um die Zeichenfolge zu codieren.

Verwandte Themen