GRPC C ++ से कैसे कनेक्ट करें InProcessChannel C ++ से नहीं?
मैं जेएनआई विकल्प के रूप में जीआरपीसी की कोशिश कर रहा हूं और विचार यह है कि सी ++ ओर जीआरपीसी सेवा और जावा / एंड्रॉइड साइड पर क्लाइंट जुड़ा हुआ है। सर्वोत्तम संभव प्रदर्शन करने के लिए, मैं इन-प्रोसेस चैनल (आपके सुझावों के लिए खुला) का उपयोग करना पसंद करूंगा।
मैं C ++ gRPC सर्वर से कैसे जुड़ सकता हूं InProcessChannel()? समस्या यह है कि मैं करने की जरूरत है पारित एक name
जावा के लिए InProcessServerBuilder
।
C ++ gRPC परीक्षणों में (जैसे। यहाँ ) मैं इसे सेट नहीं कर पा रहा हूँ और इससे मुझे लगता है कि InProcessChannel
इसका उपयोग केवल शुद्ध C ++ में किया जा सकता है (सर्वर और क्लाइंट दोनों C ++ में हैं)। क्या यह अभी भी सी ++ सेवा और जावा क्लाइंट के लिए संभव है?
पुनश्च मैं इसे जावा-सर्वर + जावा-क्लाइंट के लिए करने में सक्षम था।
पी पी एस। मुझे कुछ इसी तरह के QnAs जैसे मिले हैं। यहाँ लेकिन मुझे आश्चर्य है कि अगर वहाँ अभी भी एक साथ काम करने का एक तरीका है (शायद कुछ 3-पार्टी चैनल के साथ निहित है)। क्या यह यूनिक्स डोमेन सॉकेट्स पर काम कर सकता है?
जवाब
C ++ और Java "इन-प्रोसेस" ट्रांसपोर्ट को उन मामलों के लिए उचित रूप से नामित नहीं किया गया था जब एक ही प्रक्रिया में कई भाषाएं होती हैं। इन-प्रोसेस ट्रांसपोर्ट केवल प्रत्येक व्यक्तिगत भाषा में काम करता है; C ++ और Java इन-प्रोसेस ट्रांसपोर्ट इंटरैक्ट नहीं कर सकते हैं।
आपको सामान्य HTTP / 2 क्लाइंट / सर्वर का उपयोग करना चाहिए।
जबकि आप चाहते हैं कि कुछ मौजूद हो सकता है, जैसे कि "साझा मेमोरी" परिवहन, यह काम का एक महत्वपूर्ण हिस्सा है और रखरखाव के बोझ के लिए अपेक्षाकृत कम उपयोग होगा।
मैंने एरिक के एंडरसन के उत्तर को सही माना है। हालाँकि यह जानना उपयोगी हो सकता है कि मैंने इसे यूनिक्स डोमेन सॉकेट के साथ कैसे काम किया।
मुझे एंड्रॉइड के लिए पैच netty
करना और इसका उपयोग करना था । कुछ Android- विशिष्ट अनुमति नोटों पर अपना ध्यान दें ।