gpt4 book ai didi

javascript - Node-Red 发送二进制文件

转载 作者:行者123 更新时间:2023-11-30 11:41:00 27 4
gpt4 key购买 nike

在四处询问关于 IoT 设置的一些建议后,我才被介绍给 Node-Red。我有一段 javascript 代码正在将数据发送到网络套接字。它发送的代码采用 HEX 格式,并被发送到网络套接字。

我正在尝试使用 node-red 复制它,但我在确定使用哪个 Node 发送数据时遇到了一些问题。

普通 Javascript:

function connectToSocket() {

// Try to connect to the socket
try {

// Create our socket connection
connection = new WebSocket('ws://' + gatewayIP + ':8000');
connection.binaryType = "arraybuffer";

// Failed to create the socket connection
} catch (e) {

// Log error message
logMessage('Failed to connect to socket');
return;

}

}

connection.send('\x02\x00\x01\x04\x26\x2D');

enter image description here

我已经尝试将其作为字符串和 json 对象作为 msg.payload 发送,但它并没有像我期望的那样触发设备,例如当我在浏览器中运行普通 JS 函数时。

发送此十六进制字符串的合适格式是什么?

最佳答案

您要发送的是缓冲区,此时注入(inject) Node 无法生成缓冲区。最简单的方法是在注入(inject) Node 和 WebSocket Out Node 之间插入一个函数 Node 。

函数 Node 应该包含如下内容:

msg.payload = Buffer.from("\x02\x00\x01\x04\x26\x2D");
return msg;

这会将负载交换为具有正确值的缓冲区。

编辑:对于 NodeJS 0.10.x,您应该使用类似于 NodeJS 4.x 中引入的 Buffer.from() 的方法:

msg.payload = new Buffer("\x02\x00\x01\x04\x26\x2D");
return msg;

关于javascript - Node-Red 发送二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42686314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com