सं ग्राहकों चाहिए "चुनाव" सर्वर repeatadly है यही कारण है कि।
मुझे लगता है कि यहां कुंजी इंटरैक्शन डिज़ाइन सोचने के लिए है। यह चाल उपयोगकर्ता को यह सोचने के लिए मूर्ख बनाना है कि चैट तत्काल है, लेकिन जब वास्तव में यह प्रत्येक 1 या 2 या 3 या 10 सेकंड में एक बार अपडेट होता है।
विचार:
1) उपयोगकर्ता एक संदेश भेजता है, यह सीधे चैट में दिखाने के लिए और एक सर्वेक्षण ट्रिगर।
2) यदि कोई अन्य उपयोगकर्ताओं से कई संदेशों के साथ एक सर्वेक्षण वापस आ जाता है, तो उन्हें एक साथ सभी में शामिल न करें, वास्तव में उन्हें 1-2 सेकंड या उससे अधिक अवधि में याद रखें, यादृच्छिक रिक्ति के साथ, यह ऐसा दिखता है "तुरंत" और स्वतंत्र रूप से आ रहे हैं।(यदि संदेशों का एक गुच्छा एक बार में आता है तो उपयोगकर्ता को यह समझने में बहुत जल्दी लगता है कि चैट वहां और फिर अपडेट नहीं किया गया है।)
3) यदि उपयोगकर्ता x समय के लिए निष्क्रिय है। मतदान दर को हर 10sec या तो एक बार छोड़ दें।
4) यदि उपयोगकर्ता सक्रिय है, यानी बहुत सारे संदेश भेज रहे हैं, तो अधिक बार मतदान करें।
5) प्रत्येक चैनल के लिए एक स्थिर फ़ाइल है जिसे आपने पिछली बार चैट को अपडेट किया था। उदाहरण के लिए फ़ाइल chat-teenfun-lastupdate.txt
में सामग्री 1224934239
या जो भी समय प्रारूप आप पसंद करते हैं। इस फ़ाइल को स्थैतिक रूप से सेवा दें और चैनल को यह जांचने के लिए क्लाइंट को इस फ़ाइल को मतदान करने दें कि chat-poll.php?ch=teenfun
पर कॉल करने से गतिशील जांच हो। डायनामिक स्क्रिप्ट के लिए शामिल काम के आधार पर स्टेटिक फाइलें 10-100 गुना तेजी से सेवा दी जाती हैं, और जब आपको 250+ उपयोगकर्ता मतदान मिलते हैं तो आपको इसकी आवश्यकता होगी।
शुभकामनाएँ और मज़े करें!
/0
पी एस। वैकल्पिक रूप से आप वास्तव में सर्वर को सर्वर पर AJAX कॉल करने दे सकते हैं और उन्हें 'लटकाना' रख सकते हैं। क्या आप उनका अनुरोध स्वीकार करते हैं और डेटा वापस भेजने शुरू करने का नाटक करते हैं, लेकिन फिर आप रोकें। जब कुछ खुश होता है तो आप अनुमोदित डेटा के साथ प्रतिक्रिया समाप्त करते हैं। इसके लिए काम करने के लिए मेरा मानना है कि आपको अपना स्वयं का HTTP-सर्वर लिखना होगा, हालांकि यह विशेष रूप से करता है, क्योंकि आपके पास स्मृति में चारों ओर लटकने वाली 250 PHP प्रक्रियाएं नहीं हो सकती हैं। हो सकता है कि लाइटटैड किसी भी तरह से उस LUA कैश मोड के साथ उपयोग किया जा सके। मुझे नहीं पता। हालांकि दिलचस्प होगा। नरक मुझे इसे कभी भी कोशिश करनी होगी :)
क्या आप जानते हैं कि यहां PHP/JS में ऐसी चीजों के कुछ वास्तविक जीवन उदाहरण हैं? मैं अपने काम के लिए भी एक लिख रहा हूं, हां, इसकी सीमाएं हैं लेकिन यह असंभव नहीं है। पुश प्रौद्योगिकी के बिना भी। – elcuco
रीयलटाइम मेरे लिए रीयलटाइम का मतलब है (कनेक्शन की गति को छोड़कर) ... लेकिन आप सही हैं: वास्तव में रीयलटाइम की तरह बहुत सारी चीज़ें ... – TheHippo
मेरा मानना है कि बाद वाला दृष्टिकोण फेसबुक मैसेंजर का उपयोग करता है।यह एक पारंपरिक क्लाइंट-सर्वर दृष्टिकोण के रूप में सुरुचिपूर्ण नहीं है, शायद, लेकिन यह काम पूरा हो जाता है। – Rob