2010-12-06 7 views
6

मैं Zeromq दस्तावेज में 'ए अनुरोध-उत्तर ब्रोकर' की बात कर रहा हूँ: http://zguide.zeromq.org/chapter:allक्या कोई भी अनुरोध-उत्तर ब्रोकर जेरोमक उदाहरण समझा सकता है?

मैं एप्लिकेशन के सामान्य सार हो रही है: यह क्लाइंट से सर्वर तक एक मध्यस्थ और मार्गों संदेशों की तरह काम करता और फिर वापस।

जो मुझे नहीं मिल रहा है, यह है कि यह सुनिश्चित करता है कि सर्वर से सही प्रतिक्रिया सही क्लाइंट को भेजी जाती है जो मूल रूप से अनुरोध करता है। मुझे कोड उदाहरण में कुछ भी दिखाई नहीं देता है जो इस बारे में सुनिश्चित करता है।

अब उदाहरण में वे केवल 1 संदेश (हैलो) और 1 प्रतिक्रिया (दुनिया) भेजते हैं, इसलिए यदि संदेश मिश्रित हो जाते हैं तो इससे कोई फर्क नहीं पड़ता, लेकिन मुझे लगता है कि टेस्टक्लिएंट और सर्वर जानबूझकर सरल रखा जाता है ।

किसी भी विचारों का स्वागत है ...

उत्तर

9

सभी ज़ीरोमक सॉकेट्स के पास निहित रूप से उनके साथ एक पहचान है। (आप zmq_getsockopt() के साथ इस पहचान को प्राप्त कर सकते हैं।)

द्वि-दिशात्मक सॉकेट प्रकारों के लिए XREQ या XREP नहीं है, यह पहचान स्वचालित रूप से सॉकेट पर भेजे गए प्रत्येक संदेश के हिस्से के रूप में स्थानांतरित हो जाती है। प्रतिक्रिया संदेश को उचित सॉकेट पर वापस रूट करने के लिए आरईपी सॉकेट इस पहचान का उपयोग करता है। इसका स्वचालित रूटिंग का असर पड़ता है।

हुड के तहत, पहचान मल्टीपार्ट संदेशों के माध्यम से स्थानांतरित की जाती है। मल्टीपार्ट संदेश में पहला संदेश सॉकेट पहचान होगा। उपयोगकर्ता द्वारा निर्दिष्ट सभी संदेशों के बाद एक खाली संदेश का पालन किया जाएगा। आरईक्यू और आरईपी सॉकेट इन प्रीफिक्स्ड संदेशों के साथ स्वचालित रूप से सौदा करते हैं। हालांकि, यदि आप XREQ या XREP सॉकेट का उपयोग कर रहे हैं, तो आपको इन पहचान संदेशों को स्वयं पॉप्युलेट करने की आवश्यकता है।

यदि आप ZMQ Guide पर "पहचान" की खोज करते हैं, तो आपको उन सभी विवरणों को ढूंढना चाहिए जिन्हें आप जानना चाहते हैं कि पहचान और सॉकेट रूटिंग कैसे काम करती है।

1

अध्याय 3 वे एक के सभी में ठीक अचानक समझाने एक 'लिफाफा' जो अनुरोध/resp पैटर्न invisubly का उपयोग करता है की एक बुनियादी विचार की नहीं है।

यह बताता है कि यह कैसे काम करता है।

संबंधित मुद्दे