我正在尝试按节点将一组数据发送到我的 mqtt 服务器。
我有一个接收功能正在工作,但我无法以其他方式使其工作。
var message = new Array();
message[0] = 108;
message[1] = 11;
client.publish("/topic", message, {
retain: false,
qos: 0
});
但我明白了
[ERROR] TypeError: invalid data
我不知道如何声明数组才能填充所有数据并发送它。在我的接收函数中,我将消息变量作为参数,我可以像数组一样读取它:message[x]...
最佳答案
mqtt 支持 Buffer
或 String
要使用类型化数组,您必须将其转换为缓冲区 你可以使用这个 npm 模块 https://www.npmjs.com/package/typedarray-to-buffer
var toBuffer = require('typedarray-to-buffer')
var message = [];
message[0] = 108;
message[1] = 11;
var arr = new Uint8Array(message)
arr = toBuffer(arr)
/*
arr.toString() // '\u0001\u0002\u0003'
arr.readUInt16BE(0) // 258
*/
// arr is a buffer now!
client.publish("/topic", arr, {
retain: false,
qos: 0
}, function(){
console.log("message published"));
关于javascript - 将数据数组发送到mqtt节点js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42186461/