2011-12-20 21 views
6

चलाने के लिए रीयलटाइम-आईएसएच जानकारी भेजने के लिए एक्सएमपीपी का उपयोग करके मैं एक आईओएस ऐप विकसित कर रहा हूं। ऐप में अलग-अलग 'क्षेत्र' हैं, और उपयोगकर्ता उन्हें 'चीजें' पोस्ट कर सकते हैं। उसी क्षेत्र को देख रहे अन्य उपयोगकर्ताओं को पोस्ट की गई चीज़ को अपने फोन पर भेजा जाना चाहिए (लेकिन केवल अगर ऐप चल रहा हो)।आईओएस ऐप

मैंने एक रीस्टफुल एपीआई के साथ Django बैकएंड पर काम करना शुरू कर दिया है। मैं Amazon Web Services, पर बैकएंड को होस्ट करने की योजना बना रहा हूं और Amazon Simple Queue Service का उपयोग करके, प्रत्येक बार 'क्षेत्र' में कुछ जोड़ा जाता है, अद्यतन का समय और 'क्षेत्र' को कतार में रखता है। मैं एक पायथन ऐप बनाने जा रहा हूं जो कतार में वस्तुओं को संसाधित करता है, यह देखने के लिए डेटाबेस को पूछताछ करता है कि किन उपयोगकर्ताओं के पास 'चीजें' डाउनलोड हो सकती हैं - वर्तमान में इस भाग को फोन पर Apple Push Notification भेजने की योजना है, और यदि ऐप चल रहा है यह जेएसओएन प्रारूप में नया डेटा प्राप्त करने के लिए एक सरल रीस्टफुल अनुरोध कर सकता है।

हालांकि मुझे लगता है कि XMPP एक बेहतर समाधान होगा (आईओएस पक्ष पर XMPPFramework का उपयोग करके), और भविष्य में एंड्रॉइड का समर्थन करना संभव होगा।


मैं कैसे इस उद्देश्य के लिए उपयोग करने के लिए XMPP में अनुसंधान के एक बहुत कुछ किया गया है, लेकिन प्रलेखन पता चलता है कि आप सार्वजनिक XMPP नेटवर्क का उपयोग कर, उन एक XMPP खाता सेट करने के लिए होता है कि हो सकता है, और है अस्पष्ट कैसे गैर चैट जानकारी भेजने के लिए।

इस प्रोजेक्ट को सर्वर से जानकारी भेजने के लिए पूरी तरह से एक्सएमपीपी के उपयोग की आवश्यकता है। इस प्रकार यह एक निजी XMPP नेटवर्क होना चाहिए आवश्यक उपयोगकर्ताओं को इस निजी नेटवर्क पर एक XMPP खाते के लिए पंजीकृत किया जा सकता है (लेकिन पर्दे के पीछे हैं, वे क्या प्रौद्योगिकी एप्लिकेशन शक्ति है पता नहीं करना चाहिए।)


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

अग्रिम में आपकी मदद के लिए धन्यवाद :)

उत्तर

15

हाँ, यह संभव है। इसके अलावा XMPP के माध्यम से आप जो भी चाहते हैं उसे भेजने और प्राप्त करने के लिए पूरी तरह से संभव है।

आम तौर पर जेएमबीआर चैट खातों के लिए एक्सएमपीपी का उपयोग किया जाता है। इसका मतलब कुछ चीजें हैं।

  1. प्रत्येक उपयोगकर्ता को सर्वर पर उपयोगकर्ता के रूप में स्थापित करने की आवश्यकता है। ऐसा इसलिए है कि सर्वर जानता है कि कौन से क्लाइंट संदेशों को धक्का दे सकते हैं। यादृच्छिक उपयोगकर्ता/पास सेट अप करना और इसे सीधे ऐप से लिंक करना मुश्किल नहीं है।

  2. चैट जानकारी भेजने का मतलब है कि एक प्रेषक और एक रिसीवर है। आपके मामले में आप शायद प्रेषक को नजरअंदाज कर सकते हैं, लेकिन यह उपयोगी हो सकता है यदि आपके पास कई जगहें हैं जहां संदेश आ सकते हैं।

  3. एक संदेश में कोई भी जानकारी हो सकती है जो आप चाहते हैं। मुझे पूरी तरह से याद नहीं है (यह थोड़ी देर के बाद से मैंने एक्सएमपीपी का उपयोग किया है) लेकिन मुझे लगता है कि आप या तो वास्तविक संदेश (या जेसन या जो कुछ भी) के भीतर एक्सएमएल भेज सकते हैं या आप संदेश में अतिरिक्त एक्सएमटीएसी जोड़ सकते हैं और बस छोड़ सकते हैं संदेश स्वयं खाली (या मामूली मूल्य के साथ)।

आपको जो शुरू करने की आवश्यकता है वह एक एक्सएमपीपी सर्वर है।आप इसे अपने वेब सर्वर पर इंस्टॉल कर सकते हैं (मुझे लगता है कि आप इसे एडब्ल्यूएस पर स्थापित कर सकते हैं, लेकिन मुझे यकीन नहीं है)। यह वह सर्वर है जिसका मैं हमेशा उपयोग करता हूं, Openfire, सेट अप और उपयोग करने के लिए यह बहुत आसान है (और एक अच्छा वेब इंटरफ़ेस है जिसका उपयोग आप सबकुछ सेट करने के लिए कर सकते हैं)। यह आपको एक रिसीव संदेश भेजने देता है, और पूरी चीज "निजी" बनाता है। इसका मतलब है कि, हालांकि आप संभावित रूप से सार्वजनिक जाबर नेटवर्क से कनेक्ट हो सकते हैं, आप सर्वर तक पहुंच प्रतिबंधित भी कर सकते हैं।

अगला आप एक वेब-आधारित एपीआई चाहते हैं। एक अच्छा PHP ढांचा है, xmpphp जो आपको एपीआई सेट करने में मदद करेगा। यह एपीआई आपको अपनी पायथन स्क्रिप्ट (उदा। पोस्ट रीक से कर्ल) से संदेशों को xmpp सर्वर पर भेजने की अनुमति देगा जो इसे आईफोन पर पहुंचाएगा। अगर आप संदेश वापस नहीं भेजना चाहते हैं तो आप सब तैयार हैं। PHP का उपयोग कर एक्सएमपीपी संदेशों के लिए सुनना मछली की एक और अन्य केतली है!

ध्यान में रखना एक और बात यह है कि आपको ऐप से स्थिति भेजने की आवश्यकता होगी ताकि सर्वर जानता है कि आप लॉग इन हैं और "सुन रहे हैं" या नहीं। फिर, यदि आप इसकी तलाश करते हैं तो यह इंटरनेट पर सभी उचित रूप से अच्छी तरह से प्रलेखित है (मुझे सटीक इंस और आउट याद नहीं है)। तो आपके पायथन/PHP स्क्रिप्ट में आप यह देखने के लिए जांच कर सकते हैं कि जिस उपयोगकर्ता को आप संदेश भेजने का प्रयास कर रहे हैं वह वर्तमान में "लॉग ऑन" और "सुनना" है। यदि वे नहीं हैं तो आपको पुश नोटिफिकेशन चीज को लागू करने और पुश अधिसूचना भेजने की आवश्यकता होगी। यदि आप इसके बारे में अनिश्चित हैं तो urban airship नामक एक शानदार सेवा है जिसे मैं पुनः प्राप्त करूंगा। वे एक महीने में 1,000,000 पुश अधिसूचनाएं मुफ्त में भेजते हैं (और बाद में अधिसूचनाएं काफी उचित हैं)। अन्यथा स्वयं को सेवा स्थापित करने में चोट लगने वाली दुनिया के लिए तैयार रहें! (मैंने सुना है!)

मुझे उम्मीद है कि आपके अधिकांश प्रश्नों का उत्तर दिया गया है। यह एक सुंदर विशेषज्ञ विषय है (बहुत से लोगों को एक्सएमपीपी के बारे में पता नहीं चलेगा - उनमें से एक चीज आपको केवल तभी पता चलेगी जब आपको इसके बारे में जानना है)। हालांकि एक्सएमपीपी बहुत शक्तिशाली है, और http अनुरोधों और सभी प्रकारों को दोहराने से कहीं बेहतर समाधान है। यदि आप इसे पा सकते हैं तो इंटरनेट पर बहुत सारी जानकारी है, लेकिन आपको जानकारी की व्याख्या करने के बारे में थोड़ा सा चालाक होना पड़ सकता है, यह उन चीजों में से एक है जो अभी तक मुख्यधारा में आईफोन पर नहीं पहुंचे हैं (मेरी राय में)।

संपादित करें ... एक और बात

ड्रॉप बहिष्कार से सावधान रहें - इंटरनेट ड्रॉप बहिष्कार और इस तरह के। यह स्पष्ट लगता है, लेकिन यह हमेशा मुझे काटता है! हमेशा भूल जाते हैं कि कभी-कभी इंटरनेट कट ऑफ हो जाता है और मेरे एक्सएमपीपी कनेक्शन को फिर से कनेक्ट करने की आवश्यकता होती है। एएसपी अगर लोग पृष्ठभूमि में ऐप डाल रहे हैं और फिर बाद में वापस आ रहे हैं। :) जब आपको आवश्यकता हो तो पुनः कनेक्ट करना याद रखें।

+0

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

+0

ठीक है, मैं बहुत खुश हूं, टिप्पणियों के लिए धन्यवाद। :) यह थोड़ी देर हो गया है (मुझे लगता है कि आप वास्तव में दैनिक आधार पर एक्सएमपीपी का उपयोग नहीं करते हैं! Lol) लेकिन अगर मैं और मदद कर सकता हूं तो मुझे बताएं, आप मुझे ट्विटर (@tclayson) पर पा सकते हैं। –

+0

@ थॉमसक्लेसन- क्या आप एक्सईपी -0234 का उपयोग कर एक्सएमपीपी के माध्यम से छवि और वीडियो भेज सकते हैं – iEinstein

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