2013-11-03 7 views
5

मैं अनुप्रयोग है कि Redis से रीयल-टाइम डेटा (चार्ट, आदि) को प्रदर्शित करता है विकसित कर रहा हूँ। अद्यतन डेटा बहुत जल्दी (मिलीसेकंड) में आता है। इसलिए जितनी बार संभव हो सके अपडेट दिखाने के लिए समझदारी होगी (जब तक मानव आंख इसे देख सके)।Node.js साथ वास्तविक समय: WebSocket + सर्वर-साइड मतदान बनाम क्लाइंट-साइड मतदान

प्रौद्योगिकी ढेर:

एक वेब सर्वर
  • Redis कि
  • अभी मेरे पास एक ग्राहक के रूप में डेटा

  • जावास्क्रिप्ट/एचटीएमएल (AngularJS) रखती है के रूप में
    • Node.js क्लाइंट-साइड मतदान (अपडेट के लिए रेडिस से पूछताछ करने वाले हर दूसरे को नोड.जेएस सर्वर से अनुरोध प्राप्त करें)।

      वहाँ के बजाय सर्वर साइड मतदान कर रही है, और WebSocket के माध्यम से अद्यतन उजागर करने का लाभ है? प्रत्येक वेबसॉकेट कनेक्शन को अलग-अलग नोड.जेएस पोल (सेट इंटरवल) की आवश्यकता होगी, हालांकि ग्राहक प्रश्न अलग-अलग हो सकते हैं। लेकिन 100 से अधिक वेबसॉकेट कनेक्शन होने की उम्मीद नहीं है।

      इन दो दृष्टिकोणों के बीच कोई भी पेशेवर/विपक्ष?

  • उत्तर

    5

    अगर मैं आपके सवाल का सही ढंग से समझ में आ: आप कम से कम 100 उपयोगकर्ताओं को, जो एक साथ अपने संसाधन का उपयोग करने के लिए जा रहे हैं, और आप पता लगाने के लिए उन्हें अपडेट देने के लिए एक बेहतर तरीका हो सकता है क्या चाहते हैं:

    • ग्राहकों टाइम-आउट अनुरोध (1 प्रति सेकेंड) के माध्यम से अपडेट के लिए पूछें
    • सर्वर ग्राहकों का ट्रैक रखता है और जब भी कोई अपडेट होता है, तो यह उन्हें अपडेट करता है।

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

    मैं क्लाइंट-साइड के साथ जाना होगा अगर:

    • लोग परवाह नहीं है अगर अपने डेटा एक छोटे से बासी सा
    • लगभग अधिक तो 1 अद्यतन इस 1 सेकंड
    • मैं दौरान होता है कोड

    मैं सर्वर साइड के साथ जाना होगा संशोधित करने के लिए समय नहीं है, तो:

    • डेटा अद्यतित करना महत्वपूर्ण है और उपयोगकर्ता
    • अपडेट इतनी बार नहीं होते हैं (उदाहरण के लिए हमारे पास प्रति मिनट केवल एक बार अपडेट होते हैं, केवल 60 क्लाइंट साइड अनुरोध में से केवल 1 उपयोगी होगा। और यहाँ सर्वर बस केवल एक अद्यतन जारी करेगा)

    में अच्छी बात Node.js पहले से ही इस उद्देश्य के लिए एक उत्कृष्ट socket.io पुस्तकालय किया है।

    +1

    उत्तर के लिए धन्यवाद। यह रीयल-टाइम एप्लिकेशन है और हमेशा अपडेट होते हैं। अद्यतन डेटा बहुत जल्दी (मिलीसेकंड) में आता है। इसलिए जितनी बार संभव हो सके अपडेट दिखाने के लिए समझदारी होगी (जब तक मानव आंख इसे देख सके)। – webdev

    +0

    यह उत्तर स्वीकार किया जाना चाहिए। – Chev

    +0

    हो गया। महान जवाब के लिए धन्यवाद। – webdev

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