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



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

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

虽然添加另一个节点将数据转换为字符串并不困难,但我想知道是否有更好的方法来解决这个问题 - 例如节点红色中的某些设置将有效负载解释为特定节点的 ASCII。

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

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

最新更新