नोड और सॉकेट.ओओ में कोई अंतर्निहित सीमा नहीं है। आपको इस बारे में चिंता करने की ज़रूरत है कि संदेश के आकार, प्रति सेकेंड भेजने वाले संदेशों की संख्या, कनेक्टेड क्लाइंट की संख्या और बैंडविड्थ आपके सर्वर – पर उपलब्ध अन्य शब्दों में कोई आसान जवाब नहीं है।
चलो 10 केबी संदेश पर विचार करें। जब 10 क्लाइंट जुड़े होते हैं, तो उस डेटा के 100 केबी डेटा की मात्रा होती है जिसे आपके सर्वर को धक्का देना पड़ता है, जो पूरी तरह से उचित है। अधिक ग्राहकों में जोड़ें, और चीजें जल्दी से अधिक मांग हो रही हैं: 10 केबी * 5,000 ग्राहक = 50 एमबी।
बेशक, आपको प्रोटोकॉल ओवरहेड की मात्रा पर भी विचार करना होगा: प्रति पैकेट, टीसीपी ~ 20 बाइट्स जोड़ता है, आईपी 20 बाइट जोड़ता है, और ईथरनेट 14 बाइट जोड़ता है, कुल 54 बाइट्स जोड़ता है। 1500 बाइट्स के एमटीयू मानते हुए, आप प्रति क्लाइंट 8 पैकेट देख रहे हैं (रीट्रांसमिट्स को अनदेखा कर रहे हैं)। इसका मतलब है कि आप वायर पर 8 * 54 = 432 बाइट ओवरहेड + 10 केबी पेलोड = 10,672 बाइट प्रति क्लाइंट भेजेंगे।
10.4 केबी * 5000 ग्राहक = 50.8 एमबी।
एक 100 एमबीपीएस लिंक पर, आप 5,000 ग्राहकों अगर आप लिंक को परिपूर्ण करने में सक्षम हो करने के लिए एक 10 kB संदेश देने के लिए एक सैद्धांतिक न्यूनतम 4.3 के सेकंड देख रहे हैं। बेशक, गिराए गए पैकेट और दूषित डेटा की असली दुनिया में रीट्रांसमिट की आवश्यकता होती है, इसमें अधिक समय लगेगा।
10 केबी के बहुत ही रूढ़िवादी अनुमान के साथ भी 10 केबी से 5,000 ग्राहकों को भेजने के लिए, यह शायद चैट रूम में ठीक है जहां प्रत्येक 10-20 सेकंड में एक संदेश आता है।
- कितना बैंडविड्थ अपने सर्वर (रों) उपलब्ध होगा:
तो सच में, यह नीचे कुछ सवाल करने के लिए, महत्व के क्रम में आता है?
- कितने उपयोगकर्ता एक साथ जुड़े रहेंगे?
- प्रति मिनट कितने संदेश भेजे जाएंगे?
उन प्रश्नों के उत्तर के साथ, आप अपने बुनियादी ढांचे का समर्थन करने वाले संदेश का अधिकतम आकार निर्धारित कर सकते हैं।
आप जितना चाहें उतना डेटा भेज सकते हैं। यहां तक कि बड़ी वीडियो फाइलें भी। यहां एकमात्र मुद्दा स्केलेबिलिटी है, यानी आप कितने उपयोगकर्ता इसे प्रसारित करना चाहते हैं? लेकिन आप वैसे भी इस तरह की समस्याओं को मार देंगे। – freakish
जब भी मैं बेस 64encoded स्ट्रिंग के रूप में 20 एमबी फ़ाइल डेटा उत्सर्जित कर रहा हूं तो कमरे के भीतर अन्य व्यक्ति प्राप्त करने में सक्षम है, लेकिन यदि यह अधिक है तो 23 एमबी फ़ाइल डेटा प्राप्त करने में सक्षम नहीं है .. क्या मेरे लिए कोई समाधान है –