इसे पूरा करने के कई अलग-अलग तरीके हैं। उनमें से कुछ पहले से ही यहां उत्तर दिए गए हैं, लेकिन मैं कुछ और साथ ही उनके विचारों को भी शामिल करना चाहता था।
1।मतदान
नई जानकारी की जांच के लिए सर्वर पर बार-बार अनुरोध किए जाते हैं। ऐसा करने का यह सबसे बुरा तरीका है, लेकिन शायद सबसे आसान है। यदि आपकी साइट में कम संख्या में उपयोगकर्ता होंगे, तो यह इस तरह से करने योग्य हो सकता है।
यह setInterval(myFunction, n)
जावास्क्रिप्ट में XMLHttpRequests
सर्वर को प्रत्येक n
मिलीसेकंड भेजने के लिए पूरा किया जा सकता है। फिर, सर्वर पर, आप इसे अपनी नई जानकारी के साथ जवाब देते हैं, जब आपके पास होता है, या कुछ संदेश जो कोई नई जानकारी का तात्पर्य नहीं है।
2. लांग मतदान
जब पेज लोड किया जाता है, यह नई जानकारी के लिए सर्वर के लिए अनुरोध करता है। जब तक वापस भेजने के लिए कुछ नहीं है तब तक सर्वर कनेक्शन खुलता है। यह विधि नेटवर्क ट्रैफ़िक की मात्रा को कम कर देती है, लेकिन सर्वर पर उपयोग किए जाने वाले संसाधनों को बढ़ाती है। आप इसे उपयोगकर्ताओं की एक छोटी संख्या के लिए उपयोग कर सकते हैं, लेकिन यह बहुत अच्छी तरह से स्केल नहीं करता है।
ऐसा करने का सबसे आसान तरीका यह है कि AJAX अनुरोध को संभालने वाला पृष्ठ केवल नई जानकारी उपलब्ध होने का इंतजार कर रहा है, फिर जवाब दें। यह आपके सर्वर पर बहुत से कनेक्शन जोड़ सकता है। तो, देखभाल के साथ उपयोग करें।
3. कोमेट
COMET मूल रूप से लंबे समय तक मतदान है, लेकिन सर्वर ने इसके लिए ठीक से सेटअप है। यह जानता है कि ये कनेक्शन "वास्तविक" नहीं हैं और यह उन्हें संभालने के लिए कम संसाधनों का उपयोग करता है। यह इस समस्या के लिए एक अच्छा समाधान है, लेकिन यह आवश्यक है कि सर्वर इस उद्देश्य के लिए स्पष्ट रूप से सेटअप हो। अन्य लोकप्रिय सर्वरों के लिए कॉमेट सर्वर और सीओएमईटी एडिन हैं, लेकिन इसके लिए कुछ सेटअप और कभी-कभी कुछ पैसे की आवश्यकता होगी।
.NET पर इसे कार्यान्वित करना दुनिया में सबसे आसान चीज़ नहीं है। आप समाधान के लिए भुगतान कर सकते हैं, किसी और के कोड को खोजने का प्रयास करें जो कुछ समान करता है, या इसे स्वयं लिखने का प्रयास करें। मुझे इसके लिए कोई सभ्य मुक्त समाधान नहीं मिला है। अगर किसी और के पास है, तो कृपया टिप्पणी करें।
4. रिया
एक अन्य समाधान अपने पृष्ठ पर फ्लैश, Silverlight, या जावा एप्लेट शामिल करने के लिए किया जाएगा। लोग अक्सर 1x1 ऑब्जेक्ट का उपयोग करके ऐसा करते हैं ताकि वे सर्वर से बात करने के लिए फ्लैश या सिल्वरलाइट का उपयोग कर सकें। यदि आप निर्भरता को जोड़ने में कोई फर्क नहीं पड़ता है, तो यह एक सभ्य समाधान है। यदि आप पहले से ही सिल्वरलाइट या फ्लैश को जानते हैं, तो यह लागू करने के लिए अपेक्षाकृत सरल हो सकता है।
आप इन विकल्पों में से प्रत्येक के लिए इंटरनेट पर ट्यूटोरियल पा सकते हैं।
5. वेब सॉकेट
आप अत्याधुनिक पर हैं, तो आप Web Sockets पर गौर कर सकते हैं। यह केवल आधुनिक ब्राउज़रों के नवीनतम निर्माण में उपलब्ध है। यह एचटीएमएल 5 का हिस्सा था, लेकिन अब यह अपनी खुद की कल्पना हो सकती है। भले ही, इसका मतलब है कि पुराने ब्राउज़र इसे संभालने में सक्षम नहीं होंगे। लेकिन, यदि आप ब्राउज़र के नवीनतम करने के लिए अपने आप को सीमित करने से परहेज नहीं करते, तो आप इस अद्भुत सुविधा का उपयोग कर सकते हैं।
मुझे विश्वास है कि Chromium केवल ब्राउज़र है कि वर्तमान में इसका समर्थन करता है। हालांकि, वहाँ काम फ़ायरफ़ॉक्स और WebKit में इस लागू करने के लिए किया जा रहा है।
मैं तुम्हें विवाद को छोड़ देंगे और बस का कहना है कि यह करता है कि वास्तव में क्या आप इसे करना चाहते हैं। कल्पना का सार यह सब कहते हैं।
यह विनिर्देश एक एपीआई को परिभाषित करता है जो वेब पेजों को दूरस्थ सॉफ़्टवेयर के साथ दो-तरफा संचार के लिए वेब सॉकेट प्रोटोकॉल का उपयोग करने में सक्षम बनाता है।
विशेष उल्लेख
आप नोड जे एस की दुनिया में रुचि रखते हैं, तो आप Socket IO के साथ गलत नहीं जा सकते। यह ब्राउजर के लिए जो भी तकनीक उपलब्ध है, वह सर्वोत्तम रूप से लागू होगा।
निष्कर्ष
सबसे अच्छा विकल्प नोड जे एस पर Socket.IO है। हालांकि, एएसपी.NET समाधान के लिए, यदि आप कर सकते हैं, तो सीओएमईटी या वेब सॉकेट के लिए जाएं। अन्यथा, फ्लैश/सिल्वरलाइट का उपयोग करना भयानक नहीं है। अंत में, मतदान और लंबे मतदान अंतिम रिसॉर्ट्स होना चाहिए। आप हमेशा इनमें से किसी एक का समर्थन कर सकते हैं, फिर क्लाइंट के ब्राउज़र में इसके लिए समर्थन नहीं होने पर दूसरे पर वापस आना।
क्लाइंट साइड कोड अनुरोध नया कोड होने के बजाय, आप वेब सर्वर से "पुश" ऑपरेशन के बारे में बात कर रहे हैं, है ना? –
सही! मैं एक सर्वर कमांड जारी करना चाहता हूं जो क्लाइंट एक्शन को ट्रिगर करता है। –