设备正在向代理发送ASCII字符串。我期待有效载荷中有一个字符串。但Node-Red的MQTT节点将其视为二进制blob。
我知道MQTT将所有有效负载都视为blob。但是,当从桌面MQTT客户端发送消息时,同一节点正确地将有效负载显示为字符串。所以这似乎是一个编码问题。
虽然添加另一个节点将数据转换为字符串并不困难,但我想知道是否有更好的方法来处理这种情况 - 比如在node-red中设置一些设置将有效负载解释为特定节点的ASCII。
答案 0 :(得分:0)
MQTT-in节点使用is-utf8 npm节点来测试传入的消息,看它们是否是字符串。
如果您正在传递缓冲区,那么传入的消息未通过此测试,我将检查“设备”用于编码字符串的编码。