问题标签 [protobufjs]
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.
javascript - 有没有办法按标签解码/编码,但在 protobuf.js 中没有任何 .proto 文件或 json 文件?
有没有办法按标签解码/编码,但在 protobuf.js 中没有任何 .proto 文件或 json 文件?
还是其他图书馆?
喜欢:
json - 为什么推荐使用 .JSON 而不是 protobufjs 的静态代码?
对于 protobufjs 库,他们建议使用 .JSON 而不是静态代码
https://github.com/protobufjs/protobuf.js/tree/master/cli#reflection-vs-static-code
对于生产环境,建议将所有 .proto 文件捆绑到一个 .json 文件中,这样可以最大限度地减少网络请求的数量并避免任何解析器开销(提示:仅适用于 light 库):
但是,我不明白为什么建议这样做:
- 对于 JSON 和编译的源代码,网络请求的数量是相同的。换句话说,如果用户将 .proto 文件渲染到一个 .js/.json 文件中,两者都只有一个请求。
- 对我来说,“最小”库建议比“轻”库更小
而且,作为一个较小的问题,对我来说,不反射统计代码的“权衡”似乎是错误的——我曾考虑使用反射作为代码气味。我很好奇为什么这被列为权衡。
protocol-buffers - 如何使用 Protobuf.js 逐条显示每条消息?
基本上,如果我 concat 5 个编码的 protobuf 结果(到一个文件中),我可以得到 2 条消息,但我不能得到 5 条消息。怎么能做到这一点,也许使用encodeDelimited
and decodeDelimited
?或者我必须将它编码为使用AllMessages
并编码一次并解码一次,就像一个数组......这意味着我无法连接结果?repeated
GenericMessage
所以意思是如果我通过网络发送消息,它必须是一个接一个,每个作为一个独立的消息,但不能一起批处理(或连接)并发送一次?
细节:
我正在使用 Node.js 运行以下命令
写它:
并阅读它:
结果:
所以我可以取回最新的 2 条消息,但无法取回 5 条。
webrtc - protobufjs 通过 webrtc 数据通道编码的消息
我们使用 protobufjs 对消息进行编码并通过 webrtc 数据通道发送。这是有效的还是需要任何解决方法?
https://www.npmjs.com/package/protobufjs
前任:
node.js - 无法更新 Firebase 工具 - protobufjs 错误
每隔一段时间,npm 都会提醒我更新firebase-tools
,但在尝试更新时出现以下错误。
如您所见,我正在运行 Node v10.24.0。我能够按原样部署我的 Firebase 项目。升级节点可能是一个解决方案——我不知道——但我担心升级到节点 12 会破坏某些东西,所以我宁愿不这样做。
还有其他解决方案吗?
而且,继续使用 firebase-tools v7.23.0 是否真的存在问题,或者我是否缺少某些功能?
javascript - protobufjs load() 在浏览器中同步执行
我有包含所有消息定义的 proto 文件。我目前正在开发一个 reactjs 项目,我想在 js 代码中动态使用其中的一些原型模型,为此我正在使用protobufjs库。
我有一个函数,我在其中调用protobuf.load()
以创建在 proto 文件中定义的类型的新对象。该函数的代码如下所示:
在调用doSomething()
时,结果总是返回一个空数组,因为加载函数是异步执行的(据我所知)。
有没有一种干净的方法可以在返回结果之前完成加载?如果 UI 冻结也没关系,这不是问题。
protobufjs 文档指定了另一种语法
在尝试这个时,我得到:
Error: illegal token '<' (models.proto, line 1)
在使用 js 时,我是一个新手。在这个问题上的任何帮助都会有很大帮助。提前致谢!
proto - `{}` 在 rpc 声明中的意义
在浏览 protobufjs 和 google protobuf 官方指南的文档时,我注意到两者描述的 rpc 声明之间存在语法差异 -
- 谷歌 protobuf 指南 -
- ProtobufJS 指南 -
注意最后的区别{}
。
这有什么意义?它会导致不同的代码行为吗?
参考 -
- 谷歌 Protobuf 指南 - https://developers.google.com/protocol-buffers/docs/overview#services
- Protobuf JS 指南 - https://protobufjs.github.io/protobuf.js/#using-proto-files
protobufjs - 如何使 protobufjs 生成的代码更小
protobufjs 生成的代码对于移动案例中的前端案例来说太大了。使用 3 个短 proto 文件时大约有 300kb。
用于生成 es6 的 Bash:
node.js - protobufjs load from string
I get a .proto
definition as a string input, can I load it into a Root
object straight from the string, for example the string might look like this
And I want to be able to load it
protocol-buffers - 将每个 protobuf 文件合并为一个“combined.proto”
我已经广泛寻找这个问题的良好解决方案。我很擅长写剧本。
出于各种原因,我想将这里的每个 .proto 文件组合成一个“combined.proto”。
我在这里找到的其他答案与我的问题不匹配 - 一些帮助将不胜感激。