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

angular-universal - npm 运行服务:ssr。ENOENT:没有这样的文件或目录,打开 'google/protobuf/api.proto'

我正在尝试迁移现有的 Angular 应用程序以通过 Angular Universal 使用服务器端渲染。npm build:ssr 可以正常工作,但是在尝试服务:ssr 时,在尝试查找 'google/protobuf/api.proto' 和其他 protos 时会出错。

原型位于 中node_modules/protobufjs/google...,但在尝试为该站点提供服务时显然无法找到。

一些谷歌搜索说我需要放一个,externalDependencies但没有奏效。

版本信息:

0 投票
1 回答
232 浏览

node.js - Node.js protobuf 包括

我们正在尝试在 Node.js 中实现一个 grpc 服务。

我们有一个common.proto描述常见消息的文件,我们可以在不同的服务中重用这些消息。到目前为止,我们只在 Go 中实现了服务,并在 Go 或 PHP 中使用它们。这一切都很好。

现在我们想在 Node 中实现一项服务,我们已经生成了 pb.js 文件,它们都来自common.proto,并让我们调用它service.proto

问题是,service_pb.js它会生成以下代码:require("../common_pb.js")

这当然是无效的,因为路径common_pb.jsnode_modules/@company/common-node/common_pb.js,而现在它在node_modules/@company/common-node/common_pb.js.

我仍然无法弄清楚我们如何才能使 Node 正确地工作,所以如果有人有一个很棒的解决方案。

0 投票
1 回答
3067 浏览

node.js - 在 nodejs 上使用 protobufjs 使用来自 .net 的 protobuf 消息时出现无效的线路类型和索引超出范围错误

我正在尝试在节点 js 上使用来自 RMQ 的 protobuf 消息。protobuf 消息是使用 C#.Net 上的 protobuf-net 创建的

因此,例如 c# 对象如下所示:

然后它被添加到 RMQ 中,我们在另一端使用具有相同对象的 .net 侦听器对其进行解码。

但是现在我们想从 nodejs 读取消息。为此,我在 nodejs 端使用 amqplib 和 protobuf-js。

我试图使用带有装饰器的对象来解码消息,如下所示:

像这样解码:

其中 ch 是 amqplib RMQ 通道。

但我总是遇到以下错误之一:

偏移 2 处的无效导线类型 7

偏移 2 处的无效导线类型 4

偏移 2 处的无效导线类型 6

超出范围的索引:237 + 10 > 237

ETC

我究竟做错了什么?

编辑:

看起来我没有考虑 MessageBase(PositionOpenNotification 继承的抽象)也是一个 ProtoContract 并且数据是用长度前缀序列化的事实。

所以最后这是有效的:

添加一个带有 PositionOpenNotification 对象的 MessageBase 对象:

然后在反序列化它时:

0 投票
1 回答
718 浏览

javascript - 在 protobuf.js 中自动包装和解包 wrappers.proto 类型

我一直在使用 protobuf.js(命令行工具)pbjs 和 pbts 为我定义的 .proto 文件生成我的 js 和 typescript 类。我从我的后端 API 收到一个 json 响应,我希望将其反序列化为 protobuf 生成的类。推荐的方法是使用接受 json 对象的 fromObject 方法。假设我有

我希望能够通过:

并让它们都编码和解码为同一事物。但是,如果我想设置代码字符串,我必须这样做:

我希望 fromObject 可以处理这个问题,但它没有 - 有什么方法可以挂钩一些定制来做到这一点。或者,如何使用 typescript 使用 protobufjs 来实现这一点?

0 投票
2 回答
473 浏览

typescript - Typescript 枚举作为接口

我正在使用一个用于 TS 生成的库(ts-protoc-gen),它为枚举生成以下内容:

  1. 我应该如何消费它?
  1. 它如何在不初始化的情况下导出 const?
0 投票
1 回答
518 浏览

graphql - 可以使用 protobuf 发布到 Apollo 服务器吗?

我正在开发一个当前使用 protobuf 从客户端与 api 进行通信的项目。我想做一个显示通过graphql进行通信的概念证明,并且想知道是否可以将protobuf发送到apollo服务器而不是json。

还询问了阿波罗服务器的频谱: https ://spectrum.chat/apollo/apollo-server/is-there-support-in-the-road-map-at-all-for-sending-protobuf-from-the-客户端~dbdbc639-d7c7-4d0f-9caa-b58bb3744a90

我看到一些protobuf相关的包, https ://www.npmjs.com/package/apollo-engine-reporting-protobuf https://www.npmjs.com/package/@apollo/protobufjs

并且想知道是否有任何计划或是否有可能。在这里问是因为我在社区网站上没有收到任何回复。

0 投票
1 回答
384 浏览

protocol-buffers - 编码和解码协议缓冲区任何类型的消息

我有一个看起来像这样的原始文件。

然后我尝试对消息进行编码和解码,我丢失了google.protobuf.Any类型的信息。

有谁知道这是为什么?

0 投票
0 回答
107 浏览

node.js - 如何将 protobuf.js 从 nodejs 连接到客户端?

我遇到了一个问题,我无法理解如何将 node.js 后端 API 与用 Angular 编写的前端应用程序连接起来。任何人都可以帮我吗?

我不明白我应该如何使用 protobuf.js 编写数据并在客户端使用它。我开始使用这个库- Protobuf.js - 但我仍然不知道如何用它做简单的 API。

谢谢你的帮助!

0 投票
0 回答
55 浏览

javascript - 在消息中表示可变 JSON 对象数据

使用 protobufjs,我正在尝试定义一条消息,该消息将具有一个包含标准 JSON 对象的字段。

在我的打字稿代码中,我使用

在运行时,我收到消息失败

错误:类型中没有此类类型或枚举“google.protobuf.Struct”

我究竟做错了什么?是否有可能包含可变 JSON 对象数据的消息?

0 投票
0 回答
151 浏览

javascript - 有没有办法按标签解码/编码,但在 protobuf.js 中没有任何 .proto 文件或 json 文件?

有没有办法按标签解码/编码,但在 protobuf.js 中没有任何 .proto 文件或 json 文件?
还是其他图书馆?

喜欢: