मैं लंबे समय से आयोजित HTTP अनुरोध (धूमकेतु), AJAX और websockets (उपयोग किए गए ब्राउज़र के आधार पर) का उपयोग कर एक HTTP वेबकैट प्रोग्राम करना चाहता हूं। Userdatabase mysql में है। चैट पीएचपी में लिखा गया है, सिवाय इसके कि चैट स्ट्रीम स्वयं भी जावास्क्रिप्ट (node.js) में लिखा जा सकता है:PHP सॉकेट सर्वर बनाम node.js: वेब चैट
मैं प्रति उपयोगकर्ता एक PHP प्रक्रिया शुरू नहीं करना चाहता क्योंकि चैट भेजने का कोई अच्छा तरीका नहीं है इन php बच्चों के बीच संदेश। तो मैंने PHP या node.js में अपना सॉकेट सर्वर लिखने के बारे में सोचा जो कि 1000 से अधिक कनेक्शन (चैट उपयोगकर्ताओं) को संभालने में सक्षम होना चाहिए। पूरी तरह से वेब डेवलपर (PHP) के रूप में मैं सॉकेट से ज्यादा परिचित नहीं हूं क्योंकि मैं आमतौर पर कनेक्शन के बारे में वेब सर्वर की देखभाल करता हूं। चैट संदेश डिस्क पर और न ही mysql में सहेजे जाएंगे, लेकिन रैम में एक सरणी या ऑब्जेक्ट के रूप में सर्वश्रेष्ठ गति के लिए।
जहां तक मुझे पता है कि एक ही PHP प्रक्रिया (सॉकेट सर्वर) में एक ही समय में एकाधिक कनेक्शन को संभालने का कोई तरीका नहीं है, हालांकि आप बड़ी संख्या में सॉकेट कनेक्शन स्वीकार कर सकते हैं और उन्हें लूप में लगातार संसाधित कर सकते हैं (पढ़ना और लिखें; आने वाला संदेश -> सभी सॉकेट कनेक्शन को लिखें)। समस्या यह है कि ~ 1000 उपयोगकर्ताओं के साथ अंतराल होने की संभावना है और MySQL ऑपरेशन पूरी चीज को धीमा कर सकता है जो तब सभी उपयोगकर्ताओं को प्रभावित करेगा।
मेरा प्रश्न है: क्या node.js बेहतर प्रदर्शन के साथ सॉकेट सर्वर को संभाल सकता है? Node.js घटना-आधारित है लेकिन मुझे यकीन नहीं है कि यह एक ही समय में कई घटनाओं को संसाधित कर सकता है (क्या उसे बहु-थ्रेडिंग की आवश्यकता नहीं होगी?) या यदि कोई ईवेंट कतार है। एक घटना कतार के साथ यह php की तरह होगा: उपयोगकर्ता के बाद प्रक्रिया उपयोगकर्ता।
मैं प्रति चैट रूम (बहुत कम उपयोगकर्ताओं) के लिए एक पीएचपी प्रक्रिया भी उत्पन्न कर सकता हूं लेकिन afaik सिंगलथ्रेड किए गए आईआरसी सर्वर हैं जो हजारों उपयोगकर्ताओं को संभालने में भी सक्षम हैं। (सी ++ या जो कुछ भी लिखा है) तो शायद यह php में भी संभव है।
मैं PHP को नोड.जेएस पर पसंद करूंगा क्योंकि तब परियोजना केवल PHP होगी और प्रोग्रामिंग भाषाओं का मिश्रण नहीं होगा। हालांकि अगर नोड एक साथ कनेक्शन संसाधित कर सकता है तो शायद मैं इसे चुनूंगा।
धन्यवाद अपनी आवश्यकताओं के पैमाने पर होगा। मैंने पिछले हफ्ते PHP में बहुत कुछ लिखा था (यहां तक कि नाम! == '' भाग समान है), इसलिए अब मैं जांच करूंगा कि यह PHP में जितना तेज़ है node.js में है इसलिए मुझे बग की आवश्यकता नहीं है दो भाषाएं हालांकि node.js अच्छा और आसान है क्योंकि मैंने इसे क्लाइंट साइड स्क्रिप्टिंग के लिए अब वर्षों से उपयोग किया है (jquery आदि)। – Eliasdx
@Eliasdx क्या आप हर बेंचमार्क node.js बनाम php करते हैं? मैं उत्सुक हूं कि परिणाम क्या हो सकते हैं। – William
@Eliasdx इस पर कोई खबर है? मैं खुद को चैट बनाने और अपने निष्कर्षों के बारे में जानने में बहुत दिलचस्पी ले रहा हूं। मैं व्यक्तिगत रूप से PHP में अधिक हूं। –