我主要对用Java做到这一点感兴趣,但是查看任何语言的解决方案都会有所帮助。
根据各种文档,我正在阅读gRPC的默认工作流程是
.proto
文件我想做的是以编程方式(从.proto
文件或通过其他方式)读取消息架构,然后将根据该架构布局的一些数据发送到某个地址。
我现在看到的唯一方法是外壳,在临时目录中生成代码,调用编译器,加载编译后的代码,并使用反射来获得预期的功能。
对我来说,这听起来像是一个极端的骇客。有没有更简单的选择?
答案 0 :(得分:1)
在gRPC Java中,生成的代码和原型是可选的,您实际上并不需要它们(尽管它们很方便)。要动态解释消息,您需要定义自己的Marshaller,该JSON with gRPC与InputStream
一起使用以访问原始消息字节。从这里可以将它们缓冲到一个数组中,并决定如何解析它们。
作为类似的练习,我编写了关于使用https://github.com/GoogleCloudPlatform/google-cloud-php-firestore的更深入的教程。该原理应与您的代码相同。