问题标签 [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 回答
783 浏览

c# - 在运行时创建原型模式?

我一直在使用 protobuf.net 的IExtensible功能(允许我创建运行时原型消息流)。不幸的是,似乎没有任何功能可以proto从可扩展类中提取模式。我需要这个功能,以便更容易让 protobuf.js 读取消息流。

有没有办法为可扩展/动态类生成原型模式?

0 投票
1 回答
1087 浏览

javascript - Protobuf : WebApi -> JS - 解码对象为空

我想WebApi通过请求将对象从控制器发送到 Html 页面Ajax

当我在 JS 中收到对象时,它是空的。但是服务器端的对象不是空的,因为当我查看它时byte[].length它大于 0。

  • 服务器端,我使用谷歌提供的dll
  • JS 方面,我使用ProtobufJS 库。这是我的.proto文件:

    • 服务器代码:

      容器.Models.Add(model);

    • Base64 数据:

    ChEKBFRlc3QQARkfhetRuB4JQA==

    • JS解码:

      /li>
    • JS 控制台中的结果对象:

      /li>
    • 字节缓冲区.js

    • protobuf.js v5.0.1
0 投票
1 回答
4929 浏览

javascript - 使用 protobufjs 的基本打字稿示例

我目前正在我的打字稿项目中实现一些协议缓冲区翻译。我已经将 proto 文件加载到 ProtoBuilder 中(使用来自protobufjs.d.ts的 typescript 定义文件),并且我已经从构建器返回了一个 ProtoBuf。

如果我在名为 pb 的变量中拥有 ProtoBuf 对象后设置断点,我可以在控制台中调用 pb.decode(buffer) 并且它可以工作。然而,TypeScript 不喜欢这种语法。

经过多次戳戳和刺激,包括尝试以下操作:

(这会导致错误 TS2349 无法调用类型缺少调用签名的表达式。)

我仍然无法像代码一样获得 TypeScript 编译器。

如何从 TypeScript ProtoBuf 对象到 MetaMessage 对象中隐藏的解码函数?

如果重要的话,我在 Visual Studio 2015 中这样做。

编辑:我可以使用以下方法解决问题:

但如果存在,我更喜欢更优雅的解决方案。

0 投票
1 回答
2335 浏览

javascript - 如何将protobuf base64字符串解码为js对象

我正在尝试将来自服务器端(base64 字符串)的 protobuf 消息解码为 javascript 对象。用于解码protobuf.js

正如医生建议的那样:

这就是我尝试这样做的方式(数据 - base64 字符串):

我收到错误

decode/decode64 未定义

0 投票
1 回答
4302 浏览

node.js - 如何让 protobuf.js 输出枚举字符串而不是整数

我正在使用最新的protobuf.js和 Node.js 4.4.5。

我目前很难protobuf.js输出枚举而不是整数的字符串定义。我尝试了几个建议,但都没有奏效:

我想这是因为protobuf.js第一个 API 发生了变化。对于第二个,我可以部分使用建议的解决方案,但如果消息嵌套在其他消息中,则构建器似乎回退到使用整数值,尽管字符串值已明确设置。

理想情况下,我想覆盖用于生成枚举值的函数,但我很难用调试器找到正确的函数。或者有没有更好的方法来实现深度嵌套的对象?

0 投票
1 回答
549 浏览

javascript - Javascript ByteBuffer到base64字符串不返回图像

在 Intel XDK 中制作 HTML5 应用程序,因此计算是在 Javascript 中完成的。

案例:从服务器获取(google)protobuf 消息。将其解析为对象。我们有一张图片,jpg。将其放入 HTML 中。嘿,你可以使用 base64... 在那里你可以使用 BitmapFactory:

在一些 google-fu 发现这样的东西之后:

这是障碍:图像没有显示:它显示了断开的链接图像。但是使用上述第一个函数时不会引发错误。我认为我出错的地方是偏移量。数据结构如下所示:

对 HTML 的设置是这样完成的,它可以工作,已经用其他 base64 字符串对其进行了测试:

0 投票
0 回答
1638 浏览

node.js - 支持 Protobuf.js 中的任何字段

我正在Protobuf.js为 Node 使用,似乎尚不支持Any来自 proto3 的字段类型。

该模块的作者建议手动定义Any如下。

但是,我不太清楚在那之后我应该做什么。我编写了一个成功使用解决方法的最小脚本:

我的服务.proto

示例.js

这有效,我得到了我的预期。但是,我有几个问题:

  1. 有没有更好的方法来获取消息的全名来构造 type_url。我在我的代码中使用了 .toString() 但我查看了其他语言的实现,并且消息似乎有某种名称的吸气剂。

  2. 在对 Any 消息进行编码和解码时,我应该使用 .encode 和 .decode 还是有更好的方法?

0 投票
2 回答
127 浏览

javascript - 无法在Javascript中通过引用为变量赋值

我想在 ProtoBuf 加载函数中为变量 IMLoginReq 赋值,但它不起作用,有人可以帮忙吗?

0 投票
1 回答
1129 浏览

javascript - Javascript protobuf 性能

nodejs 中有两个不同的模块可用于 protobuf -

  1. https://github.com/dcodeIO/ProtoBuf.js/
  2. https://github.com/google/protobuf/tree/master/js - 官方但功能比其他模块少。具体来说,没有打字稿集成。

哪个性能更好?

0 投票
1 回答
634 浏览

javascript - 具有 .NET 类型的 Protobuf.js .toObject()

我正在使用 protobuf-net(服务器)和 protobuf.js(浏览器客户端)的组合。

我有一个这样的 .proto :

当我解码传入的 Foo ArrayBuffer 并调用 .toObject() 时,如何插入 bcl.Decimal 转换器?