javascript - 将数据数组发送到mqtt节点js

标签 javascript arrays mqtt

我正在尝试按节点将一组数据发送到我的 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 支持 BufferString

要使用类型化数组,您必须将其转换为缓冲区 你可以使用这个 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/

相关文章:

java - 如何创建一个新数组并将另一个数组中的所有正元素复制到新数组中并返回它?

java - 似乎无法正确使用 ListView

java - 是否有类似 DefaultMqttPahoClientFactory 的东西用于创建异步客户端?

javascript - 卡住 : onclick background color attribute changing correctly but actual color not displaying (with PHP loop)

来自 w3schools 的 Javascript 可点击下拉菜单不适用于 jsfiddle。为什么?

c - 使用 C 语言的文本文件登录系统

java - 检查订户在 MQTT 主题发布上收到的消息?

python - 可以在 mqtt broker 中获取所有可能的主题

javascript - 复选框返回两个值

javascript - Backbone.js:如何在模型删除时解除事件绑定(bind)