如何解决如何不从 C++ 连接到 gRPC C++ InProcessChannel?
我是 trying gRPC 作为 JNI 替代方案,其想法是在 C++ 端使用 gRPC 服务,在 Java/Android 端连接客户端。为了获得最佳性能,我更愿意使用进程内渠道(接受您的建议)。
如何使用 InProcessChannel()
连接到 C++ gRPC 服务器?问题是我需要为 Java 的 name
pass InProcessServerBuilder
。
在 C++ gRPC 测试(例如 here)中,我找不到它的设置,这让我觉得 InProcessChannel
只能在纯 C++ 中使用(服务器和客户端都在 C++ 中)。 C++服务和Java客户端还有可能吗?
附注。我能够为 Java-server + Java-client 做到这一点。
PPS。我发现了几个类似的 QnAs eg. here,但我想知道是否还有办法让它一起工作(可能与一些 3rd-party channel impl)。它可以在 Unix 域套接字上工作吗?
解决方法
C++ 和 Java 的“进程内”传输没有在多种语言处于同一进程中的情况下正确命名。进程内传输仅适用于每种语言; C++ 和 Java 进程内传输无法交互。
您应该使用普通的 HTTP/2 客户端/服务器。
虽然可能存在您想要的东西,例如“共享内存”传输,但它需要大量工作,并且维护负担相对较少。
,我已接受 Eric 的 Anderson 回答正确。但是,了解我如何使用 Unix 域套接字 working 可能会很有用。
对于 Android 和 patch,我必须use it netty
。请注意某些 Android 特定的权限 notes。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。