2013-04-11 3 views
10

का उपयोग कर दो-तरफा संचार मैं क्लाइंट-सर्वर आर्किटेक्चर तैयार कर रहा हूं जिसे विंडोज कम्युनिकेशन फाउंडेशन का उपयोग करके लागू किया गया है। उपयोग मामलों में से एक में, सर्वर को अनुरोध क्लाइंट की स्थिति की आवश्यकता है, जिसका अर्थ है कि क्लाइंट पर SendStatus() विधि को कॉल करने की आवश्यकता है और इसकी स्थिति मांगें। मैं बस सोच रहा था कि क्या क्लाइंट पक्ष पर एक स्टैंडअलोन सेवा बनाने के बिना, डब्ल्यूसीएफ का उपयोग करके इस उपयोग के मामले को लागू किया जा सकता है। मैं सॉकेट से बचने की कोशिश कर रहा हूं क्योंकि ग्राहक पृष्ठभूमि सेवा है और अनिवार्य रूप से हमेशा सर्वर से जुड़ा हुआ है। मैं समझता हूं कि डब्ल्यूसीएफ अंततः संचार के लिए सॉकेट का उपयोग करता है, लेकिन मैं विशेष रूप से डब्ल्यूसीएफ का उपयोग करने की कोशिश कर रहा हूं क्योंकि यह अवधारणा के सबूत की तरह है।डब्ल्यूसीएफ

का संभावित हल मैं के बारे में सोचा था ग्राहक सर्वर पर SendClientStatus() विधि कॉल और उसकी स्थिति हर 5 सेकंड या तो भेज सकता है। लेकिन फिर यह एक अच्छा दृष्टिकोण की तरह प्रतीत नहीं होता है। किसी भी सहायता की सराहना की जाएगी।

+4

इसे डुप्लेक्स संचार कहा जाता है। [एमएसडीएन लेख] (http://msdn.microsoft.com/en-us/library/ms731064.aspx) – J0HN

उत्तर

9

डब्ल्यूसीएफ की दुनिया में, आपके पास कम से कम दो विकल्प हैं।

एक) A Duplex service with Dual Http Binding

बी) एक नहीं-रिटर्न-मूल्य मतदान योजना - यह अनिवार्य रूप से आप क्या वर्णित है। निष्पक्ष कार्यान्वयन, जैसा कि आप सही ढंग से नोट करते हैं, वह महान नहीं है, लेकिन अनुकूलन हैं। चूंकि आपको SendClientStatus (सही?) से लौटाई गई किसी भी चीज़ की आवश्यकता नहीं है, इसलिए आप एक होने पर केवल एक अपडेट भेजकर संचार को अनुकूलित कर सकते हैं - उदा। जब तक ग्राहक की स्थिति वही रहती है, सर्वर पर कुछ भी नहीं भेजा जाता है। आवृत्ति के आधार पर ग्राहक की स्थिति में परिवर्तन, यह यातायात को बहुत कम कर सकता है। डुप्लेक्स सेवाएं कुछ अतिरिक्त कॉन्फ़िगरेशन प्रस्तुत करती हैं जिन्हें आप तब तक टालना चाहते हैं जब तक कि आपको वास्तव में उनकी आवश्यकता न हो।