दिलचस्प पोस्ट
पर्ल में मेरे ($ variableName) और मेरे $ variableName में अंतर क्या है? बयान के "INSERT INTO dbo.Blah" भाग को दोहराने के बिना मैं कई पंक्तियों को कैसे सम्मिलित कर सकता हूं? एक webservice को कॉल करना जो WCF से आईएसओ -8859-1 एन्कोडिंग का उपयोग करता है PowerShell में एक कमांड के निष्पादन का समय वर्षों में दो तिथियों के बीच अंतर, महीनों, जावास्क्रिप्ट में दिन गोल कुंडियां (सीमा त्रिज्या) सफ़ारी समस्या कैसे एंड्रॉइड में एक दृश्य के लिए छाया सेट करने के लिए? क्यों नहीं eigenclass self.class के बराबर है, जब ऐसा दिखता है? एंड्रॉइड में होम और अन्य सिस्टम बटन को अक्षम कैसे करें? उपयोगकर्ता 'NT AUTHORITY \ NETWORK SERVICE' के लिए लॉगिन विफल नाम से विधि कॉल करने के लिए प्रतिबिंब का उपयोग कैसे करें किसी फ़ाइल में Android लॉकेट डेटा लिखें HTML तालिका में लंबवत (घुमाए गए) पाठ Math.round (0.49999999999999994) क्यों वापस 1? नेविगेशन ड्रॉवर में मेनू आइटम का टेक्स्ट रंग बदलना

socket.io कमरे या नाम स्थान?

मैं वास्तविक समय चैट के लिए nodejs / socket.io की जांच कर रहा हूं, और मुझे कमरों को कार्यान्वित करने के लिए कुछ सलाह चाहिए

कौन सा बेहतर है, नाम स्थान का उपयोग करना या कमरे की सुविधा का उपयोग करने के लिए एक-दूसरे से बातें करने वालों की पूरी तरह से अलग जगह है?

कमरों और नेमस्पेस के बीच असली तकनीकी अंतर क्या है?

क्या कोई संसाधन उपयोग अंतर है?

वेब के समाधान से एकत्रित समाधान "socket.io कमरे या नाम स्थान?"

यह नाम स्थान और कमरों में समान है (socket.io v0.9.8 – कृपया ध्यान दें कि v1.0 पूर्ण पुन: लिखना शामिल है, इसलिए चीजें बदल सकती हैं):

  • दोनों नाम स्थान ( io.of ('/ nsp') ) और कमरे ( socket.join ('room') ) सर्वर साइड पर बनाए जाते हैं
  • कई नामस्थान और एकाधिक कमरे समान (वेबसॉकेट) कनेक्शन साझा करते हैं
  • सर्वर केवल उन क्लाइंट पर संदेशों को संचारित करेगा जो एक एनएसपी / कमरे से जुड़े / जुड़े हुए हैं, यानी यह सिर्फ क्लाइंट साइड फ़िल्टरिंग नहीं है

अंतर :

  • नामस्थान io.connect(urlAndNsp) का उपयोग कर ग्राहक द्वारा जुड़ा हुआ है (क्लाइंट उस नेमस्पेस में जोड़ दिया जाएगा, io.connect(urlAndNsp) ही वह पहले से ही सर्वर पर मौजूद हो)
  • कमरों को केवल सर्वर साइड पर शामिल किया जा सकता है (यद्यपि क्लाइंट को शामिल करने में सक्षम बनाने के लिए सर्वर पक्ष पर एपीआई बनाना सीधा है)
  • नाम स्थान प्राधिकरण संरक्षित किया जा सकता है
  • प्राधिकरण कमरे के साथ उपलब्ध नहीं है , लेकिन सर्वर पर पूर्वनिर्धारित, आसान-बनाने वाली एपीआई में कस्टम प्राधिकरण को जोड़ा जा सकता है, अगर कोई कमरे का उपयोग करने पर आना चाहता है
  • कमरे नाम स्थान का हिस्सा हैं ('वैश्विक' नाम स्थान पर चूक)
  • नामस्थान हमेशा वैश्विक दायरे में निहित हैं

अवधारणा को नाम (कमरे या नाम स्थान) के साथ भ्रमित करने के लिए, मैं अवधारणा को संदर्भित करने के लिए कम्पार्टमेंट का उपयोग करता हूं, और अवधारणा के कार्यान्वयन के लिए अन्य दो नाम तो फिर आप

  • प्रति-डिब्बे प्राधिकरण की आवश्यकता है, नामस्थानों को लेने के लिए सबसे आसान मार्ग हो सकता है
  • यदि आप चाहते हैं कि पदानुक्रमित स्तरित डिब्बों (अधिकतम 2 परतें), एक नेमस्पेस / कमरे कॉम्बो का उपयोग करें
  • अगर आपके क्लाइंट-साइड ऐप में अलग-अलग हिस्सों के होते हैं (खुद को डिब्बों के बारे में ध्यान नहीं रखते हैं) लेकिन एक दूसरे से अलग होने की जरूरत है, नामस्थान का उपयोग करें

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

वास्तव में यह बेंचमार्क नहीं होने पर, मुझे लगता है कि आपको अलग-अलग और समूह संदेश के लिए अपने प्रोजेक्ट में सरल डिब्बों की आवश्यकता है, या तो एक ठीक है।

निश्चित नहीं है कि यदि आपके प्रश्न का उत्तर देता है, लेकिन इस उत्तर के ऊपर आने वाले अनुसंधान ने कम से कम मुझे स्पष्ट रूप से देखने में मदद की

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

यह निर्भर करता है कि आप क्या करना चाहते हैं

मुख्य अंतर यह है कि कमरे को लागू करने के लिए कठिन हैं प्रत्येक पृष्ठ पुनः लोड के साथ कमरों में शामिल होने के लिए आपको एक विधि बनाना होगा।

नेमस्पेस के साथ आपको बस var example = io.connect('http://localhost/example'); लिखने की जरूरत है var example = io.connect('http://localhost/example'); अपने जावास्क्रिप्ट ग्राहक और क्लाइंट में स्वचालित रूप से नामस्थानों में जोड़ दिया जाता है।

उपयोग का उदाहरण:

  • कमरे: निजी चैट
  • नामस्थान: पृष्ठ का चैट