2012-07-16 7 views
10

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

क्या सभी ग्राहकों के लिए सिंगल हब बनाने का कोई तरीका है या मुझे कुछ याद आ रहा है?

उत्तर

18

प्रत्येक अनुरोध के लिए एक हब इंस्टेंस बनाया गया है, एएसपी.नेट पेज इंस्टेंस की तरह वेबफॉर्म में प्रत्येक अनुरोध के लिए बनाया गया है, एएसपी.नेट एमवीसी में प्रत्येक अनुरोध के लिए नियंत्रक बनाया गया है या प्रत्येक के लिए डब्ल्यूसीएफ सेवा उदाहरण बनाया गया है InstanceMode.PerCall का उपयोग करते समय सेवा अनुरोध।

यदि आप हब अनुरोध/उदाहरणों के बीच साझा स्थिति को बनाए रखना चाहते हैं तो आपको एक स्थिर क्षेत्र या कुछ अन्य, राज्य साझाकरण के अधिक उन्नत रूप (जैसे निर्भरता इंजेक्शन सिंगलटन) का उपयोग करने की आवश्यकता होगी।

+0

धन्यवाद, यह स्पष्ट है। प्रति कॉल में सर्वर अनुरोध का काम करता है और खत्म करता है। लेकिन यहां मेरी स्थिति है कि उन्हें डेटा को धक्का देने के लिए ग्राहकों के कनेक्शन को पकड़ना होगा, अन्यथा यदि प्रत्येक कॉल में एक नया केंद्र है, तो सिनालर सभी ज्ञात ग्राहकों को कैसे बनाए रखता है। – Wasim

+0

ए हब एक अमूर्त परत है जो सिग्नलआर के निम्न स्तर कनेक्टिविटी पहलुओं से ऊपर बैठती है और उस सरल उदाहरण-प्रति-अनुरोध निष्पादन मॉडल में आपको अनुरोध प्रस्तुत करती है। यदि आप निचले स्तर पर काम करना चाहते हैं तो तुरंत PersistentConnection क्लास पर काम करें। हब और उनके तरीके वास्तव में HubDispatcher के माध्यम से बुलाए जाते हैं जो एक PersistentConnection subclass है। यह काम करने के लिए एक और अधिक कठिन परत है और यही कारण है कि हब्स अमूर्तता पहले स्थान पर मौजूद है। –

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

  • कोई संबंधित समस्या नहीं^_^