2012-12-16 19 views
29

हमारा ऐप पुश अधिसूचनाएं प्राप्त करने के लिए एपीएनएस का उपयोग करता है। हालांकि, हमारे ग्राहक का दावा है कि उनके कुछ डिवाइस अधिसूचनाएं प्राप्त नहीं कर रहे थे और तर्क देते हैं कि उन्हें 'अवश्य' सुनिश्चित करना होगा कि नोटिफिकेशन 100% वितरित किया जाए। लेकिन मैंने somewhere पढ़ा है कि एपीएनएस 100% विश्वसनीय नहीं है और ऐसे मामले हो सकते हैं जिनसे अधिसूचनाएं वितरित नहीं की जाती हैं।एपीएनएस (ऐप्पल पुश अधिसूचना सेवा) विश्वसनीयता

मैं वर्तमान में इस बात पर घबराहट कर रहा हूं कि हम एपीएनएस को कभी भी कैसे प्राप्त कर सकते हैं। मैंने a case पढ़ा है जो एपीएनएस वितरित नहीं हो सकता है (डिवाइस ऑफ़लाइन हो सकता है)। लेकिन हमारे परीक्षण से पता चलता है कि डिवाइस ऑनलाइन भी है (वाईफ़ाई या 3 जी), कभी-कभी एपीएनएस वितरित नहीं किए जाते थे।

क्या कोई विशिष्ट मामला है जो एपीएनएस वितरित नहीं किया जा सकता है? या क्या कुछ भी है जो हम (डेवलपर्स) सभी अधिसूचनाएं प्राप्त करने के लिए कोड के साथ कर सकते हैं? कोड में मैंने जो किया है, वह सिर्फ ऐप को रिमोट अधिसूचना में पंजीकृत कर रहा है और लिखने के लिए रजिस्ट्रारफॉररोटोटोटेशनविथडिवाइस टोकन, फिर हमारे सर्वर पर डिवाइस टोकन फेंक दें।

किसी भी मदद की सराहना की जाएगी, क्योंकि हमारे ग्राहक लगभग हमें मार देते हैं यदि उनके सभी डिवाइस एपीएनएस प्राप्त नहीं कर रहे हैं!

+2

हाँ, यह नहीं * विश्वसनीय * है, शब्द के सामान्य नेटवर्क अर्थ में। – Nate

+0

क्या बैकएंड आपके द्वारा नियंत्रित एपीएनएस को संदेशों को धक्का दे रहा है? उस स्थिति में यदि आप एपीएनएस को कुछ प्रेषण विफल कर देते हैं तो आपको लॉग इन करने में सक्षम होना चाहिए और आप देख सकते हैं कि फीडबैक-सेवा में डिवाइस प्राप्त करने वाले डिवाइस के लिए टोकन शामिल हैं या नहीं। – johan

+1

त्वरित उत्तर जॉन के लिए धन्यवाद! यदि आप सर्वर-साइड के बारे में बात कर रहे हैं, तो हाँ वे हमारे PHP सर्वर द्वारा नियंत्रित होते हैं। हमारे डेवलपर्स में से एक जो सर्वर-साइड डेवलपमेंट के प्रभारी हैं, वर्तमान में एपीएनएस संदेशों को सफलतापूर्वक भेज दिया गया है। और डिवाइस कभी-कभी अधिसूचना प्राप्त करता है, कभी-कभी नहीं।मैं इस एपीएनएस चीजों के बारे में उलझन में और पागल हो रहा हूं ... –

उत्तर

42
  1. एपीएनएस ऐप्पल सर्वर पर आधारित है, और ऐप्पल सफल संदेश वितरण पर कोई गारंटी नहीं देता है।
  2. यदि ऐप खुला है (यानी उपयोगकर्ता ऐप का उपयोग कर रहा है) अधिसूचना आने पर, आईओएस एक अधिसूचना संदेश नहीं दिखाता है, तो आपको इसे संभालने की आवश्यकता है।
  3. अधिसूचना केवल तब दिखाई देती है जब ऐप पृष्ठभूमि या मारा जाता है।
  4. अपने सर्वर पक्ष पर फीडबैक सेवा भी लागू करें; पुरानी अवांछित टोकन से छुटकारा पाने में आपकी सहायता करेगा (उपयोगकर्ताओं ने सेटिंग्स के माध्यम से ऐप या अक्षम अधिसूचनाओं को हटा दिया है)।
  5. थोड़े समय के भीतर किसी डिवाइस पर बहुत अधिक अधिसूचनाएं न भेजें, कोज़ एपीएनएस केवल 1 संदेश/डिवाइस कैश करता है (यदि डिवाइस ऑफ़लाइन है)। इसलिए जब डिवाइस ऑनलाइन आता है तो यह संदेश वितरित कर सकता है। मुझे यकीन नहीं है कि संदेश कब तक कैश किया गया है।

या बस पुशर लागू ... http://pusher.com

+1

आपके स्पष्ट उत्तर के लिए धन्यवाद! यहां तक ​​कि दस्तावेज़ राज्यों में और कई वास्तविक डेवलपर्स ने इसे समझाया है, हमारे एयर-हेड क्लाइंट इस बात पर विश्वास नहीं करेंगे कि एपीएनएस 100% विश्वसनीय नहीं है ... शायद उन्होंने मामले 2 पर परीक्षण किया और अधिसूचना प्राप्त नहीं की। हम तीसरे पक्ष के कार्यान्वयन का उपयोग नहीं कर सकते, लेकिन अच्छे सुझाव के लिए वैसे भी धन्यवाद! –

+2

बस एक नोट: पुशर को कार्यान्वित करने की सिफारिश एक पूर्ण समाधान नहीं है, क्योंकि पुशर ऑफलाइन होने पर याद किए गए संदेशों से निपटता नहीं है या ऐप नहीं चल रहा है। संदेश विश्वसनीयता को धक्का देने के लिए सर्वोत्तम समाधान के लिए मेरी सिफारिश सिंक-टू-सिंक (जहां आप सभी संदेशों को डाउनलोड और प्रदर्शित करते हैं) का उपयोग सेवा अनुक्रम संख्या (टाइमस्टैंप) की गुणवत्ता के साथ करना है जो पुश आने के बाद सर्वर पर वापस कॉल करता है। यदि यह नहीं पहुंचता है, तो सिंक-टू-सिंक पुश दोबारा भेजें। यह 100% डिलीवरी प्राप्त कर सकता है। बेशक यह आपकी जरूरतों पर निर्भर करता है। – deepwinter

+6

सबसे पहले आपको प्रमाण पत्र बकवास से निपटना होगा .. फिर आपको एपीएनएस की अविश्वसनीयता से निपटना होगा .. –

2

यह यह काफी स्पष्ट रूप से कहते हैं एप्पल डॉक्स में है कि यह% नहीं 100 gauranteed और है और न ही यह इतनी के रूप में इस्तेमाल किया जाना चाहिए। इसे "सर्वश्रेष्ठ प्रयास" के साथ भेजा गया।

+0

कोई डॉक्स के लिंक पोस्ट कर सकता है जहां यह कहता है – user2387149

+2

https://developer.apple पर "सर्वश्रेष्ठ प्रयास" ढूंढें। कॉम/लाइब्रेरी/आईओ/दस्तावेज़ीकरण/नेटवर्किंग इंटरनेट/अवधारणात्मक/रिमोट नोटिफिकेशन पीजी/अध्याय/ApplePushService.html – steve

8

हमें एक ही समस्या का सामना करना पड़ रहा है। जैसा कि सभी ने कहा, एपीएनएस सर्वोत्तम प्रयास सेवा है ताकि आप सुनिश्चित न हो कि प्रत्येक अधिसूचना वितरित की जाएगी, लेकिन आप यह सुनिश्चित कर सकते हैं कि कौन से लोगों को प्राप्त किया गया है। यही वह है जो हम करने वाले हैं। हम अपने बैकएंड में प्रत्येक अधिसूचना que जहाज पर पंजीकरण करते हैं और मोबाइल ऐप प्रत्येक अधिसूचना को वापस रिपोर्ट करता है। फिर हम अधिसूचना प्राप्त करने के लिए प्रतीक्षा करने का अधिकतम समय निर्धारित करते हैं, अगर हमें रिपोर्ट प्राप्त नहीं होती है तो हम फिर कोशिश करते हैं।

मुझे आशा है कि यह किसी के लिए उपयोगी हो सकता है (यहां तक ​​कि 2 साल बाद)

+0

क्या होगा यदि अंतिम उपयोगकर्ता डिवाइस बंद है? – neilb

+0

आप मूल संदेश को वितरित होने से कैसे रोकते हैं (हमारे अनुभव में, कभी-कभी 3 मिनट तक .... :( –

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