节点红色MQTT节点:有效载荷包含字节数组而不是字符串

时间:2017-01-21 18:07:08

标签: mqtt node-red

设备正在向代理发送ASCII字符串。我期待有效载荷中有一个字符串。但Node-Red的MQTT节点将其视为二进制blob。

我知道MQTT将所有有效负载都视为blob。但是,当从桌面MQTT客户端发送消息时,同一节点正确地将有效负载显示为字符串。所以这似乎是一个编码问题。

虽然添加另一个节点将数据转换为字符串并不困难,但我想知道是否有更好的方法来处理这种情况 - 比如在node-red中设置一些设置将有效负载解释为特定节点的ASCII。

1 个答案:

答案 0 :(得分:0)

MQTT-in节点使用is-utf8 npm节点来测试传入的消息,看它们是否是字符串。

如果您正在传递缓冲区,那么传入的消息未通过此测试,我将检查“设备”用于编码字符串的编码。