如何连接到不是来自 C++ 的 gRPC C++ InProcessChannel?

How to connect to gRPC C++ InProcessChannel not from C++?

我是 trying gRPC 作为 JNI 替代品,我的想法是在 C++ 端提供 gRPC 服务,在 Java/Android 端连接客户端。为了获得最佳性能,我更愿意使用进程内通道(接受您的建议)。

如何使用 InProcessChannel()? The problem is that i need to pass 连接到 C++ gRPC 服务器 name for Java's InProcessServerBuilder.

在 C++ gRPC 测试中(例如 here)我找不到它的设置,这让我觉得 InProcessChannel 只能在纯 C++ 中使用(服务器和客户端都在 C++ 中). C++ 服务和 Java 客户端是否仍然可用?

PS。我能够为 Java-server + Java-client 做到这一点。

PPS。我发现了几个类似的 QnA ,但我想知道是否还有办法让它一起工作(可能与某些第 3 方渠道实现)。它可以在 Unix 域套接字上工作吗?

C++ 和 Java“进程内”传输未针对多种语言在同一进程中的情况适当命名。进程内传输仅适用于每种语言; C++ 和 Java 进程内传输无法交互。

你应该使用正常的 HTTP/2 client/server.

虽然可能存在您想要的东西,例如“共享内存”传输,但它需要大量工作,而且维护负担相对较少。

我接受埃里克安德森的回答是正确的。然而,了解我是如何使用 Unix 域套接字实现它的 working 可能会有用。

我不得不patch netty for Android and use it. Pay your attention to some Android-specific permission notes