2012-07-10 14 views
18

मैं एक सामाजिक एप्लिकेशन बना रहा हूं और सोच रहा था कि फेसबुक उनकी सूचनाओं को कैसे प्राप्त करता है। जैसा कि आप जानते हैं, फेसबुक नोटिफिकेशन तत्काल हैं। जैसे ही कोई कार्रवाई करता है, लोगों को अधिसूचित किया जाता है।फेसबुक जैसे त्वरित सूचनाएं

मुझे लगता है कि उनके पास हर समय डेटाबेस पर कोई क्वेरी नहीं चल रही है।

क्या कोई मुझे सही दिशा में इंगित कर सकता है। धन्यवाद

+1

सवाल काफी हद तक खुला है क्योंकि विकल्पों में से एक टन है। आपको सर्वर को क्लाइंट को धक्का देने की अनुमति देने के लिए कुछ चाहिए। [जानकारी के साथ StackOverlow पुराना सवाल] (http://stackoverflow.com/questions/471780/asp-net-http- सर्वर-push-to-client) –

उत्तर

25

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

वहाँ एक बड़ा वास्तविक समय चैट साइट jabbR कहा जाता है कि SignalR के शीर्ष पर बनाया गया है:

http://jabbr.net/

यहाँ कुछ और अधिक लिंक है कि मिलना चाहिए आप शुरू कर रहे हैं।

8

फेसबुक एक मैसेजिंग प्रोटोकॉल (जिसे इसे डिज़ाइन किया गया) का उपयोग करता है जिसे Thrift कहा जाता है। यह ग्राहकों से अधिसूचनाओं को सर्वरों को बहुत कम विलंबता के साथ अनुमति देता है। मुझे लगता है कि सर्वर पर अपडेट उपयोगकर्ता कार्रवाई और प्रासंगिक उपयोगकर्ताओं के आधार पर ट्रिगर किए जाएंगे जो उसी तंत्र द्वारा अधिसूचित किए जाएंगे।

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

आसान करने से कहा जाता है, खासकर जब आपके पास 800 मिलियन संभावित उपयोगकर्ता लॉग इन हैं!

0

आप http://nodejs.org/ पर एक नज़र लेने के लिए चाहते हो सकता है - यह एक इवेंट-संचालित मॉडल है जो 'सोशल नेटवर्क'/तत्काल अधिसूचना परिदृश्य के लिए बिल्कुल आदर्श है।

एफवाईआई: आप यह भी पा सकते हैं कि गैर-एसक्यूएल डेटाबेस जैसे मोंगोडीबी (http://www.mongodb.org/) का उपयोग करना डीबी से पूछताछ करते समय बहुत तेज होगा क्योंकि प्रत्येक 'व्यक्ति' ऑब्जेक्ट में सोशल नेटवर्क परिदृश्य में उनके अनूठे गुण होते हैं - जो सामान्य SQL डेटाबेस में डिज़ाइन करना मुश्किल होता है।

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