问题标签 [protocol-buffers-3]
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.
go - 如何在函数中使用 proto.Message 类型?
我正在使用 golang 和协议缓冲区。我有两个原始消息,其中一个导入另一个。我想使用proto.Message
type 进行一些处理,但出现错误。
这是foo.proto
这是bar.proto
我要导入的地方foo.proto
我正在使用以下函数来处理Book
. 我想让它保持通用,因为我的用例也需要转换其他原始消息。
当我在我的 go 文件中使用上述函数时,如下所示
我收到如下语法错误
我究竟做错了什么?
arrays - 如何从python中的.dat文件将特定列引入缓冲区或字节数组
我有一个包含 4 列(和 4 行)的 .dat 文件。我试图只将名为“叙述”的第三列引入缓冲区。如果这是不可能的,可以将“叙述”列引入字节数组吗?我没有在网上找到任何关于此的内容,也不知道从哪里开始。
到目前为止,我的代码包含所有四列:
java - 协议缓冲区,序列化数据中有什么?
我是协议缓冲区的新手,真的很想知道更多关于它的信息,很抱歉这个菜鸟问题。
序列化数据中的内容是什么,只有值还是键和值?我认为只有价值观,如果有人想反序列化它,他/她必须有计划。
java - Protobuf Java - 不区分大小写的映射?
我有一个地图,其中包含用户输入的远程机器名称,以及用户在主机上输入的名称以供在那里运行的程序。不希望出现重复的条目,因为用户输入了一次大写字母,之后又以小写字母输入了相同的名称。
原型:
存储时,理想情况下我可以使用此方法,因为地图标记为区分大小写。虽然不是默认行为,但看不到其他装饰方法。希望我错过了什么。
知道我可以迭代所有地图值,并且只有在我没有找到 equalsCaseInsenstive 匹配时才放。如果必须的话,我最终会这样做,但似乎有点蛮力。
protocol-buffers - 如何将多个protobufs放在一条线上
我们有一个发送 protobuf 的通信通道。为了能够发送不止一种类型的 protobuf,我们双重序列化:
如果我有一个FriedEggs
protobuf,我将其序列化,将其分配给 Coprolite 的有效负载,将 payload_type 设置为 KBezoarFriedEggs,序列化 Coprolite,然后将其发送。
收到后,我反序列化,检查我有什么,然后反序列化。
这适用于我们所有的平台。但是,我还没有找到其他人这样做的例子(实际上也没有任何其他方式)。所以这表明我应该征求意见。有没有更好的策略或理由让我对此保持警惕?
java - protoc 自定义插件出错,程序未找到或不可执行
我正在尝试构建一个自定义 protoc 插件来从 .proto 文件生成自定义输出。我从protoc 自定义插件中复制了包含 CodeGenerator 的 java 文件作为起点并将其重命名。我还关注了可执行文件并创建了 .sh 文件。我的shell脚本的内容如下。
我还添加了插件执行的 PATH 变量值和输出。有人可以指出我哪里出了问题吗?shell 脚本运行良好,分别执行 main 方法
java - 有没有办法让生成的枚举在 Protobuf v3 中实现自定义接口?
我想让 Proto3 中生成的枚举实现一个自定义的预先存在的接口,如下所示:
(默认情况下,枚举只实现com.google.protobuf.ProtocolMessageEnum
)。
对于消息,类似的功能可以通过message_implements:
插入点来实现。
enum
但是-s没有这样的选择。
在 Protobuf 中是否有传统的方法来实现这一点?或者,可能是一种非常规的方式?
amazon-web-services - 使用 Make 文件为 Flutter 和 Golang 生成 gRPC 文件
如果我想使用以下配置在 Amazon AWS EC2 上部署我的 Golang 服务器,这是正确的 Make 文件代码吗:
这是制作文件代码:
运输包装
假设用户在 MacOS 上,如果是其他 OS,请将 PROTO_ROOT_DIR 更改为 protobuf 安装的路径 PROTO_ROOT_DIR = $(shell brew
--prefix)/Cellar/protobuf/3.6.0/include PROJECT_NAME = hello-grpc
Dart 也要求您手动发送所有 google 提供的 proto 文件。
_gendart: @mkdir -p model/gen/ship/dart @protoc -I=model/protodefs --dart_out=grpc:model/gen/ship/dart model/protodefs/ .proto @protoc -I$(PROTO_ROOT_DIR) -- dart_out=model/gen/ship/dart $(PROTO_ROOT_DIR) /google/protobuf/.proto
_gengo: @mkdir -p model/gen @protoc -I=model/protodefs --go_out=plugins=grpc:model/gen model/protodefs/*.proto
创:_gengo _gendart
构建:获取 gen @env CGO_ENABLED=0 GOOS=linux GOARCH=386 构建 -ldflags '-w -extldflags "-static"' -o build/${PROJECT_NAME}_linux_amd64 。@env GOARCH=amd64 go build -ldflags '-w -extldflags "-static"' -o build/${PROJECT_NAME}_macosx_amd64 。
获取:@go get -u github.com/golang/dep/cmd/dep @dep 确保
安装:get gen @cp config_template.json config.json
我的困惑是,我需要使用上述配置为 Amazon AWS EC2 构建文件(假设我的服务器 go 文件名为 main):
GOOS=linux GOARCH=amd64 go build -o main
但是在 Make 文件中,这一行提到了“GOARCH=386”:
构建:获取 gen @env CGO_ENABLED=0 GOOS=linux GOARCH=386 去构建
当我在 Mac OS 上为上述 Amazon AWS EC2 实例构建 Go gRPC 服务器时,正确的文件代码可能是什么
请帮我 :(
binary-data - 如何将 protobuf 可读请求转换为 proto 消息
我出于教育目的使用 google api 来学习 protobuf 连接。但是400 Bad Request
当我发送帖子请求时我得到了。我希望我的 protobuf 消息有问题,并且不明白如何0: 0
在 proto 文件中写入消息。我正在使用PHP Protobuf
库来序列化数据。
这是可读/解码的 grpc 发布请求数据:
我按照上面的 grpc 请求数据创建了这个原型消息:
我的原始消息是否正确?或者我将如何写它?
还有我在php中的请求模型数据:
是否有(在线/软件/方法)任何工具来解码 grpc/protobuf 请求/响应可读数据,如上面的 json 数据?