2012-06-30 14 views
22

मैं आईफोन के लिए चैट ऐप बना रहा हूं, लेकिन मुझे यकीन नहीं है कि बातचीत संदेशों को तुरंत कैसे आना चाहिए।आईओएस चैट एपीएनएस, सॉकेट या टाइम अंतराल

मैंने इस विषय पर कई Google परिणाम पढ़े हैं। इसके अलावा एक बार पर:
-http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server
- http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

APNS दृष्टिकोण:
एक अदृश्य अधिसूचना iPhone यह दर्शाता है कि एक नया संदेश पढ़ा जा करने के लिए तैयार है पर पुश किया जाएगा। तो ऐप अपठित संदेशों के लिए अनुरोध करेगा। तो नए संदेशों को मैन्युअल रूप से मतदान करने की बजाय, मैं एपीएनएस को इसके साथ मदद करने दूँगा। लेकिन मुझे यकीन नहीं?

सॉकेट दृष्टिकोण:
एक गर्तिका कनेक्शन है कि डेटा साझा करने के लिए खुला है बनाना। जब डीबी में नए संदेश पाए जाते हैं, तो यह स्वचालित रूप से डेटा को ऐप पर भेज देगा। लेकिन आईपी रेंज, फ़ायरवॉल, बिजली की खपत, अन्य चीजों के बारे में क्या? फिर मुझे यकीन है कि नहीं कर रहा हूँ :(

मतदान दृष्टिकोण:
जहाँ मैं अनुरोध पोल एक समय अंतराल है, बिजली की खपत मेरे यहाँ दुश्मन है

मेरा प्रश्न:।
- किस तरीके से है ? सबसे अच्छा
- अन्य सुझाव
-। मैं वास्तव में इस विषय पर अनुभव के साथ कुछ विपक्ष और लोगों से पेशेवरों की जरूरत है

उदाहरण एक है अच्छा अच्छा है।
धन्यवाद

+2

मतदान आपको विश्वसनीयता, बेहतर देरी और टाइमआउट नियंत्रण देता है, और एक प्लस के रूप में, आप यह चुनने के लिए स्वतंत्र होंगे कि आपका डेटा कैसे पेश किया जाए। पुश अधिसूचनाओं के साथ, आपको कोई गारंटी नहीं है कि आपका संदेश सफलतापूर्वक वितरित किया गया था। ऐप्पल इसकी गारंटी नहीं देता है। इसलिए मैं अपने उपयोगकर्ताओं को चैट संदेश देने के लिए ऐप्पल पर भरोसा नहीं करता। – jweyrich

+2

मुझे लगता है कि आप इस सवाल को गलत समझते हैं। एपीएनएस को स्वयं चैट संदेश नहीं भेजना चाहिए, इसे केवल ऐप को "पोक"/"आवेदक" करना चाहिए कि कुछ नए अपठित संदेशों को पढ़ने के लिए तैयार है। –

+0

क्या आप एपीएनएस विधि के बारे में निश्चित नहीं हैं? पुश अधिसूचनाओं को पृष्ठभूमि निष्पादन की आवश्यकता नहीं होती है, जो एक बड़ी जीत है क्योंकि निलंबित राज्य में एक आवेदन बैटरी बचाता है। – jweyrich

उत्तर

6

मुझे लगता है कि आपकी मुख्य चिंता यह है कि आपका एप्लिकेशन पृष्ठभूमि में होने पर नए संदेश कैसे प्राप्त करें। क्योंकि ऐसा नहीं है कि जब मैं व्हाट्सएप जैसे ऐप्स के साथ नोटिफिकेशन प्राप्त कर सकता हूं तो मुझे पूरे दिन एक मैसेंजर ऐप खोलने वाला है।

टीसीपीआईपी सॉकेट से बेहतर आप websockets का उपयोग कर सकते हैं। चूंकि यह HTTP है, इसलिए कोई फ़ायरवॉल समस्या नहीं है, लेकिन इसके लिए बैटरी को निकालने वाले अग्रभूमि पर एप्लिकेशन के साथ स्थायी कनेक्शन की आवश्यकता है।

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

इसलिए, एपीएनएस का उपयोग करें। व्हाट्सएप यही करता है।

+0

अच्छा अंक। यहां तक ​​कि अगर मैं एपीएनएस के साथ चिपक जाता हूं, तो भी मुझे विश्वास है कि भविष्य किसी भी तरह से है .. लगातार कनेक्शन (सॉकेट या अन्य चीजें) - जहां आपको मैन्युअल रूप से रीफ्रेश करने की आवश्यकता नहीं है। व्हाट्सएप के उदाहरण के लिए धन्यवाद। –

+0

मैं केवल अग्रभूमि भाग के बारे में चिंतित हूं। क्या मैं आपके उत्तर से यह मानता हूं कि व्हाट्सएप पूरी तरह से पुश अधिसूचनाओं पर निर्भर करता है, यह जानने के लिए कि उसे नए संदेश खींचना है, भले ही यह ऐप अग्रभूमि में चल रहा हो? – figha

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