Bagaimana cara menyambungkan ke gRPC C ++ InProcessChannel bukan dari C ++?
Saya mencoba gRPC sebagai alternatif JNI dan idenya adalah agar layanan gRPC di sisi C ++ dan klien terhubung di sisi Java / Android. Untuk mendapatkan kinerja terbaik, saya lebih suka menggunakan saluran dalam proses (terbuka untuk saran Anda).
Bagaimana cara menyambungkan ke server gRPC C ++ InProcessChannel()? Masalahnya adalah bahwa saya perlu untuk lulus suatu name
untuk Jawa InProcessServerBuilder
.
Dalam tes C ++ gRPC (misalnya di sini ) saya tidak dapat menemukannya disetel dan itu membuat saya berpikir hanya InProcessChannel
dapat digunakan dalam C ++ murni (baik server dan klien dalam C ++). Apakah masih mungkin untuk layanan C ++ dan klien Java?
PS. Saya bisa melakukannya untuk Java-server + Java-client.
PPS. Saya telah menemukan beberapa contoh QnA serupa . di sini tetapi saya bertanya-tanya apakah masih ada cara untuk membuatnya bekerja sama (mungkin dengan beberapa saluran pihak ketiga impl). Bisakah itu bekerja melalui Soket Domain Unix?
Jawaban
Transpor "dalam proses" C ++ dan Java tidak diberi nama dengan tepat untuk kasus beberapa bahasa berada dalam proses yang sama. Pengangkutan dalam proses hanya bekerja dalam setiap bahasa; transpor dalam proses C ++ dan Java tidak dapat berinteraksi.
Anda harus menggunakan klien / server HTTP / 2 normal.
Meskipun sesuatu yang Anda inginkan mungkin ada, mungkin sebagai transportasi "memori bersama", ini adalah pekerjaan yang sangat besar dan akan melihat penggunaan yang relatif sedikit untuk beban pemeliharaan.
Saya telah menerima jawaban Eric Anderson sebagai benar. Namun mungkin berguna untuk mengetahui bagaimana saya membuatnya bekerja dengan Soket Domain Unix.
Saya harus menambal netty
untuk Android dan menggunakannya . Perhatikan beberapa catatan izin khusus Android .