【问题标题】:Protobuf js sending a message as byte arrayProtobuf js 以字节数组形式发送消息
【发布时间】:2017-07-15 07:06:15
【问题描述】:

我正在尝试在节点 js 中发送 proto3 消息并编码为字节数组。但是根据 protobuf js,消息被编码为缓冲区(而不是字节数组),而不是在节点 js 中。有没有办法将此消息编码为字节数组?

var message = SomeMessage.create(payload);
var buffer = SomeMessage.encode(messager).finish();
console.log(buffer) // returns <Buffer>

【问题讨论】:

  • 缓冲区字节数组(嗯,"Uint8Array instances")。你想要一个带有字节数值的普通 JS 数组吗?
  • 将 grpc 发送到另一个用其他语言编写的程序是否有关系?其他程序能否将其读取为 Uint8Array?
  • 缓冲区包含原始(编码)数据,所以如果你正确发送它(作为二进制,而不是作为字符串),“另一端”应该没有问题读取它。

标签: javascript protobufjs


【解决方案1】:

如果你想要一个包含字节数值的数组,你可以试试:

const bufferedData = Buffer.from(JSON.stringify(message));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    相关资源
    最近更新 更多