2011-01-31 13 views
8

मुझे वेब अनुप्रयोग में कुछ सुंदर आक्रामक "ऑटो रीफ्रेश" क्षमताओं में निर्माण करने की आवश्यकता है। यह एक फोटो गैलरी की तरह है और छवियां AmazonS3 पर संग्रहीत हैं लेकिन छवियों के बारे में डेटा हमारे डेटाबेस में संग्रहीत किया जाता है। मैंने सर्वर को मतदान करने और अद्यतन डेटा प्राप्त करने के लिए AJAX कॉल भेजने के साथ खेला है। मैं इस विधि के साथ सर्वर (ओं) पर लोड के बारे में वास्तव में चिंतित हूं। कभी-कभी, पृष्ठ को हर 15 से 30 सेकंड में अपडेट करने की आवश्यकता होगी।मतदान, धूमकेतु, वेबसाकेट, आदि

मैं धूमकेतु पर पढ़ रहा हूं और मुझे अभी बेचा नहीं गया है कि यह "हैक" एक अच्छा विचार है। वेबसाकेट शायद मदद करेंगे लेकिन मुझे चिंता है कि वे बहुत नए हैं और बहुत असमर्थित हैं। तो, यह कहा जा रहा है कि, क्या किसी को ऐसे सिस्टम को आर्किटेक्ट करने के तरीकों पर कोई सिफारिशें हैं जिन्हें अक्सर रीफ्रेश करने की आवश्यकता होती है और इसमें बहुत अधिक उपयोगकर्ता आधार की संभावना होती है?

मैं समस्या पर अधिक सर्वर फेंकने के लिए तैयार नहीं हूं लेकिन यह विश्वास नहीं करता कि यह सबसे अच्छा तरीका है। और इससे पहले कि कोई और सुझाव देता है, मैं फ्लेक्स नहीं कर सकता, क्योंकि वेब ऐप को आईपैड पर काम करना है।

उत्तर

7

वेबसाकेट्स काफी अच्छी पसंद की तरह दिखते हैं। फ़ायरफ़ॉक्स 4 और ओपेरा 11 में वेबसाकेट्स को अक्षम करने की संभावना अस्थायी है क्योंकि कार्यकारी समूह ने उन मुद्दों को संबोधित करने वाले ड्राफ्ट जारी करना शुरू कर दिया है। इसके अलावा, web-socket-js फ्लैश फ़ॉलबैक अभी भी ब्राउज़र पर भी काम करेगा जहां देशी वेबसाकेट अक्षम कर दिए गए हैं। यह भी ध्यान देने योग्य है कि आईओएस 4.2 में देशी वेबसाकेट हैं। तो मूल वेबसाकेट + फॉलबैक के साथ, वेबसाकेट बस हर जगह समर्थित है।

यदि आप वेबसाकेट्स का उपयोग करते हैं तो आप क्लाइंट पोल के बजाए अपडेट को धक्का देने पर भी विचार करना चाहेंगे। इससे ग्राहकों को गलती से सर्वर डीडीओएस करने में मदद मिलेगी। लेटेंसी केवल ग्राहकों के लिए जायेगी और उस समय आप सर्वर के पक्ष में अधिक संसाधन जोड़ना शुरू कर सकते हैं।

यदि सर्वर-साइड जावास्क्रिप्ट प्रश्न से बाहर नहीं है, तो आप Socket.IO देख सकते हैं जो एक नोडजेस वेबसाकेट फ्रेमवर्क है जो क्लाइंट और सर्वर दोनों का सबसे अच्छा परिवहन चुनता है (देशी वेबसाकेट पसंद करते हैं, फिर वेबस्केट्स फ़ॉलबैक, फिर विभिन्न लंबे मतदान विकल्प)। यह सर्वर और क्लाइंट कोड को बहुत समान दिखने में सक्षम बनाता है क्योंकि इसमें क्लाइंट साइड लाइब्रेरी शामिल है। इस समय सॉकेट.आईओ का मनोदशा थोड़ा सा लगता है।

यदि आप रूबी केंद्रित हैं तो शायद आप em-websockets देखें। सॉकेट.आईओ और एम-वेबसाकेट दोनों ईवेंट आधारित सर्वर हैं जो बहुत अधिक क्लाइंट की गणना करता है, विशेष रूप से बैंडविड्थ की बजाय विलंबता सर्वोपरि है।

+0

+1 स्पष्ट और समझदार स्पष्टीकरण के लिए +1, धन्यवाद। – limist

+0

... और जावा के लिए धूमकेतु आज़माएं! मैं अत्यधिक अनुशंसा कर सकता हूं! – Karussell

0

डब्ल्यूएस-आई समूह ने "Reliable Secure Profile" नामक कुछ प्रकाशित किया जिसमें ग्लास मछली और .NET implementation है जो स्पष्ट रूप से inter-operate अच्छी तरह से है।

किसी भी भाग्य के साथ वहां Javascript कार्यान्वयन भी है।

एक सिल्वरलाइट कार्यान्वयन भी है जो HTTP Duplex. का उपयोग करता है आप पुश होने पर कॉलबैक प्राप्त करने के लिए connect javascript to the Silverlight ऑब्जेक्ट कर सकते हैं।

commercial paid versions भी हैं। विकल्प और संदर्भों के साथ,

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