2012-11-09 3 views
7

मेरे पास मैसेजिंग के लिए सिग्नलआर हब का उपयोग करके चैट रूम है। कभी-कभी मुझे उन उपयोगकर्ताओं की रिपोर्ट मिलती है जहां यह 'फ्रीज' होती है। अब इसका अर्थ हो सकता है क्योंकि कोई संदेश नहीं आ रहा है, मुझे संदेह है कि उन्हें एक समूह से हटा दिया गया है।समूह सदस्यता स्वचालित रूप से पुन: कनेक्ट करने पर संभाली जाती है?

मेरा प्रश्न, कनेक्शन मिल वापस अपने समूहों में आप ही पुन: सदस्यता ली है जाता है, या आप पुन: कनेक्ट विधि में कुछ अपने आप को क्या करना होगा:

public Task Reconnect(IEnumerable<string> groups) 
{ 
     return Clients.rejoined(Context.ConnectionId, DateTime.Now.ToString()); 
} 

उत्तर

5

हाँ 1.0.0.0-alpha1 में आप आपके द्वारा बनाए गए हब पाइपलाइन के लिए EnableAutoRejoiningGroups एक्सटेंशन विधि का उपयोग करके नए AutoRejoiningGroupsModule पाइपलाइन मॉड्यूल का उपयोग करके समूह के ऑटो पुनः जुड़ने में सक्षम हो सकता है। यह सुविधा ढांचे के पिछले संस्करणों में उपलब्ध नहीं थी।

तो आप अपने स्टार्टअप कोड में यह कहीं के साथ खत्म होगा:

GlobalHost.HubPipeline.EnableAutoRejoiningGroups(); 

अद्यतन:

कृपया ध्यान दें कि SignalR 1.0 के अंतिम संस्करण बनाया समूहों डिफ़ॉल्ट व्यवहार का स्वत: फिर से शामिल और इसलिए EnableAutoRejoiningGroups हटा दिया गया था। अधिक जानकारी के लिए आप this answer देख सकते हैं।

+0

बोनस प्रश्न के साथ अपहरण करना: क्या मुझे लोगों को समूहों से फिर से हटाना याद रखना चाहिए या जब कनेक्शन कनेक्शन डिस्कनेक्ट हो जाए तो इसे स्वयं साफ़ कर दें? –

+2

जब आप डिस्कनेक्ट करते हैं तो उन्हें साफ़ कर दिया जाता है। – davidfowl

+1

'EnableAutoRejoiningGroups()' अब उपलब्ध नहीं है, और ऑटो रीजॉइनिंग डिफ़ॉल्ट व्यवहार है http://stackoverflow.com/questions/14967575/enableautorejoininggroups-disappeared-in-signalr-1-0 –