मैं काफी अच्छा सफलता जावास्क्रिप्ट में एक XMPP ग्राहक को लागू करने के लिए HTTP बाइंड XMPP बकवास करने के लिए दृष्टिकोण का उपयोग करके किया है। मुझे एएमक्यूपी के बारे में पता नहीं है, लेकिन क्लाइंट-साइड एक्सेस के लिए, मुझे एक्सएमपीपी पसंद है। कुछ शब्द क्यों।
ejabberd में पहले से ही बॉश समर्थन शामिल है, और जावास्क्रिप्ट (और संभवतः फ्लैश) के साथ उपयोग करने के लिए आपको बस अपने सर्वर को पोर्ट पर अनुरोधों को पुनर्निर्देशित करने की आवश्यकता है जिस पर आप HTTP अनुरोधों को सुनने के लिए ejabberd को कॉन्फ़िगर करते हैं। (और यहां तक कि यह केवल इसलिए क्योंकि आज के ब्राउज़र में जावास्क्रिप्ट सुरक्षा मॉडल विभिन्न डोमेन और यहां तक कि विभिन्न बंदरगाहों के लिए जावास्क्रिप्ट अनुरोधों को प्रतिबंधित करता है।)
चूंकि एक्सएमपीपी काफी छोटे छोटे एक्सएमएल दस्तावेजों का समूह है, इसलिए इसे किसी भी में एन्कोड करना काफी आसान होना चाहिए आप जो भाषा चुनते हैं।
चूंकि यह व्यापक रूप से समर्थित है, इसलिए आप अपने उपयोगकर्ताओं को अपनी सेवा के साथ पंजीकरण करने की आवश्यकता से बचने में सक्षम हो सकते हैं, जिसे वे निश्चित रूप से सराहना करेंगे।
एक्सएमपीपी लागू करने का मतलब है कि आप अपने गेम में त्वरित रूप से जेबबर नेटवर्क (Google टॉक सहित) के साथ फेडरेशनिंग के साथ त्वरित संदेश समर्थन जोड़ सकते हैं।
चूंकि मुझे एएमक्यूपी के बारे में कुछ नहीं पता है, इसलिए मैं उनकी तुलना नहीं कर सकता - लेकिन मैं कह सकता हूं कि मैं हमेशा अपनी भविष्य की मल्टीप्लेयर परियोजनाओं के लिए एक्सएमपीपी क्यों मानता हूं।
मेरे ejabberd
को चुनने के लिए व्यक्तिगत वजह साफ है - यह सुपर आसान स्थापित करने और डेबियन पर कॉन्फ़िगर करने के लिए है। मैं लगभग Erlang और जावा से पूरी तरह से अपरिचित हूँ; हालांकि, मैं समझता हूं कि एर्लांग के बारे में यह है कि यह स्केलेबिलिटी को हासिल करने में आसान बनाता है, और ejabberd
लोग कहते हैं कि उन्होंने इसे हासिल किया है।
यदि आप सर्वर साइड लॉजिक जांच करना चाहते हैं, तो मुझे डर है कि मुझे किसी भी अच्छी विधि के बारे में पता नहीं है। मैं एक प्रॉक्सी PHP स्क्रिप्ट के साथ आने वाले एक्सएमपीपी बॉश संदेश पर सैनिटी जांच कर रहा हूं, फिर इसे अपाचे के mod_rewrite
के माध्यम से इसे अग्रेषित करने के बजाय सर्वर पर अग्रेषित कर रहा हूं।
जैसा ऊपर बताया गया है, आपको निश्चित रूप से कुछ प्रकार के प्रॉक्सीइंग करना होगा (mod_rewrite
या PHP या किसी अन्य तरीके से) क्योंकि एक्सएमपीपी सर्वर "मुख्य" वेब सर्वर और जावास्क्रिप्ट से अलग पोर्ट पर सुनेंगे क्रॉस-डोमेन सुरक्षा मॉडल XMLHTTPRequest
को एक अलग पोर्ट पर करने की अनुमति नहीं देता है।
तो, आपकी पसंद के एक्सएमपीपी सर्वर को बीओएसएच अनुरोधों को रिले करते समय सैनिटी जांच सबसे आसान हो सकती है। सर्वर सॉफ़्टवेयर में खोना इस प्रकार के चेक करने का सबसे अच्छा तरीका नहीं हो सकता है। इसमें लंबा समय लगेगा, और शायद आपके बाकी गेम के साथ एकीकृत करना कठिन होगा।
वैकल्पिक रूप से, मैंने XMPP components and ejabberd modules का उल्लेख करने वाले उत्तर पर ठोकर खाई। यह भी मेरे लिए एक दिलचस्प पढ़ा जाएगा।
गुड लक, और इसके पूर्ण होने पर खेल के नाम के साथ एक टिप्पणी छोड़ने के लिए सुनिश्चित हो - मैं :-)
मैं सिर्फ किसी और देखा एक very similar question तैनात यह देखने के लिए अच्छा लगेगा तुम्हारे लिए। इसके उत्तरों में आपके लिए कुछ और दिलचस्प जानकारी शामिल है।
फ्लैश के साथ XMPP का उपयोग कर पर:
आप फिर भी बाध्यकारी (बकवास) फ्लैश के साथ HTTP इस्तेमाल कर सकते हैं। वास्तव में, जबकि HTTP बाध्यकारी जावास्क्रिप्ट को एक्सएमपीपी तक पहुंचने की इजाजत देता है, यह विभिन्न अनुप्रयोगों के लिए कल्पना की गई थी, जैसे कि मोबाइल कनेक्शन जो अक्सर टूट सकते हैं।
मुझे ज्यादातर पता लगाया गया है कि वेब-आधारित क्लाइंट जेडब्ल्यूएचएटी और ईजबर्ड (बीओएसएच पर जानकारी के लिए), और फिर क्रॉस-प्लेटफार्म क्लाइंट Psi और ejabberd (प्रोटोकॉल पर जानकारी के लिए) के बीच संचार देखकर कनेक्शन कैसे स्थापित किया जाए। जेडब्ल्यूचैट और वेबकिट के वेब इंस्पेक्टर या फ़ायरफ़ॉक्स के लिए फायरबग के साथ, कोई आसानी से सर्वर के लिए XMLHttpRequests को ट्रैक कर सकता है। एसएसआई के साथ, कोई एक्सएमएल कंसोल चालू कर सकता है और संचार लॉग पढ़ सकता है। अपनी पसंद की भाषा में क्लाइंट को प्रोटोटाइप करने के साथ संयुक्त, बीओएसएच और एक्सएमपीपी का अध्ययन करना बहुत आसान हो गया।
इसके अलावा, XEP के बाद उपयोगी हैं: XEP-0124, XEP-0206।
ओ रेली पुस्तक है कि मैं अभी पढ़ रहा हूँ, "XMPP: The Definitive Guide" (पी सेंट आंद्रे, केविन स्मिथ, Remko Tronçon; बहुत सस्ता on Apple's App Store) भी आप महसूस "क्यों चीजें जिस तरह से वे कर रहे हैं किया जाता है" देता है, और कई छोटी चीजें और एक्सएमपीपी के विभिन्न अनुप्रयोगों को दस्तावेज करता है।
उसके बाद, बीओएसएच-आधारित क्लाइंट को कार्यान्वित करना आसान हो सकता है।मुझे फ़्लैश बटन के साथ कोडिंग के साथ कोई अनुभव नहीं है, बटन बटन खेलने और रोकने के अलावा, इसे नमक के अनाज के साथ लें :-)
एक्सएएमपीपी/एलएएमपी/आदि क्लाइंट-साइड जावास्क्रिप्ट के साथ कुछ लेना देना नहीं है। अपाचे और अन्य सर्वर जो आप खोज रहे हैं। –
@ कोरोनैटस! आपकी टिप्पणी के लिए धन्यवाद लेकिन मुझे यकीन है कि आपने जो मतलब बताया है उसे अनदेखा कर दिया है। एक्स्टेंसिबल मेसेजिंग एंड प्रेसेन्स प्रोटोकॉल (एक्सएमपीपी) मैं किस बारे में बात कर रहा हूं। – Devyn
क्षमा करें, मैंने "XAMPP" के लिए "XMPP" गलत समझा। मेरी टिप्पणी को अनदेखा करें :) –