मैं वास्तव में सामान्य चैट ऐप के बारे में बात नहीं कर रहा हूं, बल्कि विशेष रूप से चैटरूम कार्यान्वयन के बारे में बात कर रहा हूं।चर्चा: node.js/socket.io के साथ चैट रूम को लागू करने का सबसे अच्छा तरीका?
तो में Node.js/socket.io, मैं दो दृष्टिकोण
सरणी में सभी उपयोगकर्ताओं के लिए प्रत्येक चैटरूम के लिए एक सरणी, प्रसारण संदेश बनाएँ
प्रसारण सभी के लिए सभी संदेशों के बारे में सोचा उपयोगकर्ता, ग्राहकों के पीसी पर निर्धारित करते हैं कि वे चैट रूम में हैं, यदि हां, तो संदेश स्वीकार करें।
1 में कमजोरी है कि अंततः के रूप में आप पैमाने आप सरणी वस्तुओं के साथ सर्वर की स्मृति बाढ़ जाएगा, और मैं अपने होस्टिंग पर 80mb के बारे में केवल का उपयोग कर रहा है।
2 में कमजोरी यह है कि सभी को प्रसारण करना महंगा है और ग्राहकों की मशीनों में बाढ़ से उन्हें खुश नहीं किया जाएगा।
मुझे यकीन है कि चैट रूम को कार्यान्वित करने के तरीके पर बेहतर दृष्टिकोण हैं, इसलिए मैं आपको लोगों से मदद करने के लिए कह रहा हूं। मैं सर्वर-साइड पर पहले क्लाइंट-साइड पर प्रदर्शन की तलाश में हूं, और यह स्केलेबल होना चाहिए।
http://davidgranado.com/demos/chat_shuffle/
आप कई खिड़कियां खोलने और अपने आप के साथ बातचीत कर के बाद से प्रत्येक उदाहरण के एक व्यक्ति माना जाता है (यह मेरी पहली नोड अनुप्रयोग है) द्वारा इसे बाहर का परीक्षण कर सकते हैं:
आप चैटरूम का एक बहुत बना सकते हैं। आपके सरणी केवल उपयोगकर्ता की आईडी को पकड़ने की आवश्यकता है। क्या आपने कोई मेमोरी खपत परीक्षण चलाया? – user123444555621
हमने एक कार्यशील [बहु-कक्ष चैटरूम] बनाया है (https://github.com/Raynos/so642)। यह खुला स्रोत है, देखने के लिए स्वतंत्र महसूस करें। – Raynos
@ pumbaa80 सच है, लेकिन 80 एमबी कई अन्य प्रक्रियाओं या क्रॉन नौकरियों को चलाने के बाद 20-30 एमबी की तरह बन जाता है, साथ ही मुझे नहीं लगता कि यह स्केल करने का एक अच्छा तरीका है क्योंकि स्मृति महंगा है ... – Derek