2010-01-23 9 views
21

मैं GAE का उपयोग कर एक बहु-खिलाड़ी गेम बनाने की सोच रहा हूं। जब खिलाड़ी ए एक कदम बनाता है, तो मैं विवरण रिकॉर्ड करना चाहता हूं और फिर खिलाड़ी बी को इस कदम के बारे में पता होना चाहिए।क्या जीएई एक एक्सएमपीपी सर्वर के रूप में कार्य कर सकता है?

मैंने सोचा कि मुझे अपने क्लाइंट में कुछ ओपन-सोर्स एक्सएमपीपी लाइब्रेरी मिल सकती है और यदि संभव हो तो मेरे ऐप में उपस्थिति को सूचित करें? मैं खिलाड़ी को Google टॉक जैसी सेवा में साइन-अप करने के लिए मजबूर नहीं करना चाहता, इसलिए मैं सत्र आईडी के आधार पर फ्लाई पर जेड उत्पन्न करूंगा।

आपसे सुनना चाहते हैं!

धन्यवाद

उत्तर

9

आप अपने gae बनाने के लिए सक्षम होने के लिए नहीं जा रहे हैं एक XMPP सर्वर एप्लिकेशन क्योंकि आप खुले सॉकेट नहीं कर सकते हैं - ऐसा करने से एपीआई के द्वारा प्रतिबंधित है।

हालांकि, आपको जो करना है, उसे प्राप्त करने के लिए आपको एक xmpp सर्वर चलाने की आवश्यकता नहीं है। आप ऐपेंगिन एपीआई में उपलब्ध एक्सएमपीपी लाइब्रेरी का उपयोग अपने ऐप को क्लाइंट बनाने के लिए कर सकते हैं कि आपके गेम 'क्लाइंट' ने पाइथन एपीआई को यहां देखने के लिए बात की है: http://code.google.com/appengine/docs/python/xmpp/। आपके सभी गेम क्लाइंट को gtalk क्लाइंट होने की आवश्यकता नहीं है, लेकिन उन्हें gtalk में पुल करने में सक्षम होना चाहिए, जो मुझे विश्वास है कि अधिकतर सक्षम होंगे।

यहाँ एक छोटी उदाहरण है: http://code.google.com/appengine/articles/using_xmpp.html

+6

उदाहरण मानता है कि आपके उपयोगकर्ता के पास पहले से ही एक xmpp क्लाइंट और आईडी है। मुझे लगता है कि ओपी चाहता है कि यह उस धारणा के बिना काम करे - गेम स्वयं ही ग्राहक होगा, और अज्ञात आईडी उत्पन्न करेगा। क्या यह परिदृश्य भी काम करेगा? –

+2

संक्षिप्त उत्तर या तो नहीं है, या हां, लेकिन जीएई क्लाइंट नए आईडी नहीं बना सकते हैं, इसलिए उन्हें इन अज्ञात xmpp आईडी बनाने के लिए GAE के बाहर अपना स्वयं का xmpp सर्वर चलाने की आवश्यकता होगी। यदि आप अज्ञात xmpp ids बनाना चुनते हैं तो आप शायद ऐसा कर रहे हैं क्योंकि आपके पास कस्टम क्लाइंट है और xmpp के माध्यम से आपके गेम प्रोटोकॉल को सुरंग कर रहे हैं, है ना? यदि विचार xmpp सर्वर को पावर करने के लिए GAE का उपयोग करना है जो नो-सॉकेट नियम के कारण काम नहीं करेगा। लेकिन आप बाहरी एक्सएमपी सर्वर का उपयोग कर सकते हैं और बारी इंजन करने के लिए जीएई का उपयोग कर सकते हैं। – dar

+0

मैंने सोचा कि जीएई एपीआई ने एक्सएमपीपी सर्वर कमांड का समर्थन किया हो सकता है क्योंकि दस्तावेज इंगित करता है कि जीएई [एपिड] @ appspot.com या [कुछ भी] @ [ऐप-आईडी] .appspotchat.com हो सकता है। लेकिन एक्सएमपीपी के कामकाज के अंत में मेरे सिर को पाने के बाद मैं देखता हूं कि जीएई केवल एक ग्राहक है। अन्यथा, जीएई पर कोई सॉकेट रखने की सीमा को पार करने के लिए हाँ एक्सएमपीपी को सुरंग माना जाता था। मुझे मतदान के बिना तुरंत अपने खिलाड़ी को सूचित करने के लिए एक विधि की आवश्यकता थी। – kasuku

3

सार्थक खर्च 15 मिनट अमेज़न के लचीला कंप्यूट क्लाउड (EC2) को देखने के लिए आप के बारे में 2 सेंट एक घंटे के लिए एक बादल सर्वर तैनात कर सकते हैं हो सकता है। यहां एक अच्छा अवलोकन http://www.youtube.com/watch?v=ZAB8wCg9MyE&feature=player_embedded

+0

धन्यवाद। मैं इस समय ईसी 2 माइक्रो के साथ टकरा रहा हूं और यह ejabberd के साथ बहुत अच्छा काम करता है। – kasuku

+1

इसके अलावा जीएई में अब धक्का देने के लिए चैनल एपीआई है लेकिन इस समय यह केवल जावास्क्रिप्ट है। – kasuku

संबंधित मुद्दे