दिलचस्प पोस्ट
एसक्यूएल सर्वर में 'एक्सएमएल' आयात करें स्थिर संपत्ति के लिए बाध्यकारी php, फ़ाइल डाउनलोड करें एचटीएमएल डेटा में कन्वर्ट: जावास्क्रिप्ट का उपयोग कर टेक्स्ट / एचटीएमएल लिंक Accordion तालिका सेल – कैसे गतिशील विस्तार / अनुबंध uitableviewcell करने के लिए? Linq में Row_number over (xxx द्वारा विभाजन)? स्थिर विधि विरासत के लिए सही विकल्प क्या है? जावा / जेपीए से संग्रहीत कार्यवाही को कॉल करना क्या मेरे नाम के दोस्ताना नाम हैं? क्यों सी # डिफ़ॉल्ट रूप से गैर-वर्चुअल रूप से लागू करता है? PHP स्ट्रिंग में यूनिकोड वर्ण सीएसएस फ्लोटिंग डिवीस एट वेरिएबल हाइट्स यूटीएफ -8 प्रारूप में फाइल कैसे लिखनी है? स्क्रीन के आकार, वर्तमान वेब पेज और ब्राउज़र विंडो को प्राप्त करें मैं UIView के सभी सबव्यूज़, और उनके सबव्यूज़ और उनके सबव्यूज़ के माध्यम से कैसे लूप कर सकता हूं

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'); अपने जावास्क्रिप्ट ग्राहक और क्लाइंट में स्वचालित रूप से नामस्थानों में जोड़ दिया जाता है।

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

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