2012-11-08 12 views
5

मैं एक ही पृष्ठ पर बैकबोन एप्लिकेशन पर काम कर रहा हूं जो वेब सॉकेट का उपयोग करने जा रहा है। आवेदन 6 या अधिक प्रमुख क्षेत्रों (स्क्रीन) के साथ काफी जटिल है।क्या एक सिंगल-पेज वेब एप्लिकेशन सर्वर या कई में एक वेब सॉकेट कनेक्शन रखना चाहिए?

वेब सॉकेट का वाक्यविन्यास काफी सरल लगता है और अब मैं आर्किटेक्चर के बारे में सोच रहा हूं।

वेब सॉकेट का उपयोग करते समय, यह पहला दृष्टिकोण या दूसरा दृष्टिकोण लेने के लिए सबसे अधिक सक्षम है?

: किसी भी स्क्रीन या एप्लिकेशन के क्षेत्र में सभी लाइव सर्वर संचार के लिए एक एकल वेबस्केट खोलें, और उसके बाद उन संदेशों को क्लाइंट साइड पर फ़िल्टर करें?

या ...

: एक समय है, जहां प्रत्येक वेब सॉकेट आवेदन

(मैं इस पेज को देखा है में कार्यक्षमता के कुछ क्षेत्र का प्रतिनिधित्व करता है पर खुला कई WebSockets, लेकिन इसके बारे में सर्वर की तरफ और मुझे क्लाइंट साइड में दिलचस्पी है: What is the best practice for WebSocket server(s)?)

अद्यतन: सर्वर जेट्टी (जावा तकनीक को टॉमकैट के विपरीत नहीं) का उपयोग कर रहा है।

+1

मैं एक कनेक्शन का उपयोग करूंगा, जब तक कि आपके पास कोई विशिष्ट कारण न हो। इस पर भी सीमाएं हैं कि आप एक साथ कितने कनेक्शन खोल सकते हैं। – Brad

उत्तर

2

मैं केवल एक कनेक्शन खोलूंगा, प्रबंधित करने में आसान होगा। डिबगिंग को कम करने के लिए आप अपने सभी ईवेंट को क्षेत्र के नाम से नाम दे सकते हैं। Socket.io नामस्थानों का समर्थन करता है, यहां देखें http://socket.io/#how-to-use "अनुभाग को अपने नाम पर प्रतिबंधित करें" अनुभाग देखें।

इसके अलावा, अगर आपके अपने WebSocket साथ संचार की बहुत कुछ कर आप इसे दृश्यता API, यहाँ उदाहरण के साथ बंद कर सकते हैं: https://developer.mozilla.org/en-US/docs/DOM/Using_the_Page_Visibility_API

1

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

चूंकि आपका वर्णन है, जैसा कि आप वर्णन करते हैं, काफी जटिल है, ऐसा लगता है कि आपको क्लाइंट और सर्वर के बीच एक ही जटिल मॉडल को साझा करने की क्षमता से लाभ होगा।

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