我主要对用 Java 来做这件事感兴趣,但是看到任何语言的解决方案都会有帮助。
根据我正在阅读的各种文档,gRPC 的默认工作流程是
- Write a
.proto
file
- 从该文件生成客户端和/或服务器代码
- 编写您的程序并将其与生成的代码一起编译
如果以编程方式读取消息模式(无论是从.proto
文件或通过其他方式),然后将根据该模式布置的一些数据发送到某个地址。
我现在能看到的唯一方法是 shell out,在临时目录中生成代码,调用编译器,加载编译后的代码,并使用反射来获取预期的函数。
对我来说,这听起来像是一个极端的黑客行为。有更简单的选择吗?
在 gRPC Java 中,生成的代码和原型是可选的,您实际上并不需要它们(尽管它们很方便)。要动态解释消息,您需要定义自己的消息马歇尔 https://github.com/grpc/grpc-java/blob/v1.15.x/core/src/main/java/io/grpc/MethodDescriptor.java#L142,它与一个InputStream
访问原始消息字节。从这里您可以将它们缓冲到数组中,并决定如何解析它们。
作为类似的练习,我编写了一个关于使用的更深入的教程JSON 与 gRPC https://grpc.io/blog/grpc-with-json。您的代码的原理应该是相同的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)