问题标签 [protobuf.js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2562 浏览

base64 - 字节字段的 Protobuf 消息到 JSON 转换将字符串转换为 base64?

我有一个如下的原型文件:

当我收到消息时,它被序列化为来自发件人的字符串。

我尝试将其转换为 JSON 对象:

当我打印 base_msg 时,将消息转换为 JSON 后,用户名将转换为 base64 字符串。我怎样才能避免这种情况?

0 投票
2 回答
2027 浏览

protocol-buffers - 停止省略协议缓冲区中的默认值

我有一个定义如下的原型模式,

现在根据官方proto3 文档,默认值不会序列化以在有线传输期间节省空间。但在我的情况下,我想接收客户端是否明确设置true/false了字段email_subscribed/sms_subscribed(因为这些值是true以前的,但现在用户想要取消订阅)。因此,当客户端发送false这些字段中的任何一个时,生成器代码序列化器只会忽略这些字段。

我如何实现这一点并避免在上述情况下省略这些字段?

PS:我使用 Javascript 作为我的 GRPC 客户端和 Python 和 GRPC 服务器。

0 投票
1 回答
49 浏览

protocol-buffers - Protobuf 没有生成我想要的 API

我正在尝试使用protobufs来帮助序列化我的数据,但是当我在 .proto 文件上运行 protobuf 命令时,它没有为我提供它所说的功能,

serializeToStringparseFromString

知道为什么会这样吗?

0 投票
0 回答
2244 浏览

javascript - 在浏览器应用中使用 protobuf.js

我有一个非常简单的浏览器应用程序,它必须使用 protobuf: https ://github.com/dcodeIO/protobuf.js 我还有一个带有消息格式的“.proto”文件,所以我只需要对传入的消息进行编码与protobuf。

不幸的是,我无法找到如何在我的项目中绑定 protobuf。我发现的只是关于 node.js,我没有使用它。我还找到了一些关于使用 require.js 绑定 protobuf 的信息,并将其写在我的脚本中:

但这似乎是错误的,因为我在控制台中收到此错误:

如果有人做过类似的事情,请你帮我看看好吗?

谢谢

0 投票
0 回答
545 浏览

javascript - 使用 Node JS 将对象数组映射到 Protobuf 时出现空响应

下面是我的示例 API 响应,它是一个对象数组。我正在尝试使用以下步骤在 protobuff 中转换此响应。但它总是给我空洞的回应。

脚步:

回复:

控制台日志中的 msg 有点像下面:

理想情况下,msg 应与 API 响应相同,并且缓冲区不应为空。

0 投票
2 回答
5301 浏览

protoc - 如何使用 protoc 将协议缓冲区字符串编码为二进制

我一直在尝试使用 protoc cli 实用程序对字符串进行编码。注意到输出仍然包含纯文本。我究竟做错了什么?

result.out 包含:

protoc 版本 libprotoc 3.6.0 和 libprotoc 2.5.0

0 投票
1 回答
1220 浏览

node.js - 在 protobuf.js 中解码消息数组

在我们的 node.js 应用程序中,我们需要反序列化一个我们知道包含多个对象的 Buffer。这样protobuf-net做是这样的:

我现在正在尝试对protobuf.js. 我还没有找到一个创建模型对象数组的示例,只有一个模型对象,如下所示:

如何使用 protobuf.js 创建对象数组而不是单个对象?

以下是数据的序列化方式:

0 投票
1 回答
838 浏览

javascript - ProtobufJS 重复字节字段未正确编码 Uint8Array

我有一个 protobuf 消息定义为:

我加载我的protobuf:

我创建了一个 protobuf 消息对象

然后我对其进行编码

然后我解码并期待

相反,我看到

然后我将我的 protobuf 加载更改为 JSON

这可以按预期工作,没有其他更改。

我做错了什么还是这是一个错误?

谢谢

Protoubuf 版本:6.8.6

浏览器:铬

带有工作 JSON 加载的 JSFiddle 示例:https ://jsfiddle.net/740snmu6/12/

0 投票
1 回答
1359 浏览

node.js - 解码时间戳与原始 DateTime 值不同的日期

DateTime我们有一个 .NET 应用程序,它在架构中定义 a ,如下所示:

该应用程序能够使用序列化数据protobuf-net,然后在反序列化后,可以按预期准确检索日期。

我现在正在尝试使用protobuf.js. 我在.proto文件中定义了该数据点,如下所示:

解码后,生成的出生日期与原始数据不同。例如,当日期最初是 1976 年 10 月 10 日时,反序列化的日期为:

Date从那个 ( )创建 JavaScript时new Date(4948 * 1000),结果是 1/1/1970。这里出了什么问题?

0 投票
1 回答
27 浏览

protobuf.js - What problems am I likely to run into adapting writer.js to write to file instead of memory?

We are working with large (10MB+) protocol buffers and it seems like encoding is producing a ton of garbage. Ultimately I want to get the encoded protobuf onto disk, and I'm thinking I could avoid all of these list node allocations if I were to - with a few other changes - replace the _push call with an append to file call.

Any reasons I shouldn't bother?