2008-10-29 11 views
5

मेरे पास क्लाइंट एप्लिकेशन है जो बैकएंड डेटाबेस में कुछ डेटा डालने के लिए डब्ल्यूसीएफ सेवा का उपयोग करता है। क्लाइंट एप्लिकेशन प्रति ईवेंट आधार पर कॉल करने जा रहा है (यह हर घंटे या हर सेकेंड हो सकता है)।डब्ल्यूसीएफ क्लाइंट के लिए सर्वश्रेष्ठ दृष्टिकोण

मुझे आश्चर्य है कि उस सेवा को कॉल करने का सबसे अच्छा तरीका क्या है।

क्या मुझे संचार चैनल बनाना चाहिए और इसे हर समय खोलना चाहिए, या क्या मुझे प्रत्येक कॉल के बाद चैनल बंद करना चाहिए और इसे फिर से बनाना चाहिए?

+0

अपने डब्ल्यूसीएफ होस्ट और क्लाइंट इंटरफेस और कार्यान्वयन के बारे में एक संकेत: अपने क्लाइंट ऑब्जेक्ट्स "होस्ट्स" और अपने होस्ट ऑब्जेक्ट्स "क्लाइंट" को कॉल करें। जब आप क्लाइंट साइड पर हों, तो आप मेजबान से संपर्क करना चाहते हैं, न कि "IClientSideComms"। – Will

उत्तर

5

पहला सवाल यह है कि क्या आपके सर्वर को सीधे क्लाइंट के बारे में किसी भी स्थिति को बनाए रखने की आवश्यकता है (यानी आप सत्र-जैसे लेन-देन कर रहे हैं?) यदि आप हैं, तो आपको यह प्रबंधित करने में सक्षम होना होगा कि सर्वर के बीच जानकारी कैसे है संचार।

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

1

मैं आप शायद एक Keep Alive pattern को लागू करना चाहते हैं, एक विन्यास अवधि के साथ अपने अंतर्निहित तंत्र को सूचित करने के शून्य संचार गतिविधि के साथ अतीत यदि कनेक्शन जीवित-रखें अवधि से परे बंद करने के लिए लगता है कि होगा।

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