यह वास्तव में अवास्तविक दिल की धड़कन अंतराल Google क्लाउड संदेश सेवा में के कारण होता है।
यह संभवतः जीसीएम में सबसे निराशाजनक बग है। जीसीएम एंड्रॉइड डिवाइस से Google के सर्वर पर एक निष्क्रिय सॉकेट कनेक्शन बनाए रखकर काम करता है। यह बहुत अच्छा है क्योंकि यह मुश्किल से बैटरी पावर (मतदान के विपरीत) का उपभोग करता है, और यह संदेश आने पर डिवाइस को तत्काल जागने की अनुमति देता है। यह सुनिश्चित करने के लिए कि कनेक्शन सक्रिय रहता है, एंड्रॉइड मोबाइल कनेक्शन पर हर 28 मिनट और वाईफाई पर हर 15 मिनट में दिल की धड़कन भेज देगा। यदि दिल की धड़कन विफल हो गई है, तो कनेक्शन समाप्त कर दिया गया है, और जीसीएम इसे फिर से स्थापित करेगा और किसी लंबित पुश अधिसूचनाओं को पुनः प्राप्त करने का प्रयास करेगा। दिल की धड़कन अंतराल जितनी अधिक होती है, कम बैटरी खपत होती है और डिवाइस को कम से कम नींद से जागने की आवश्यकता होती है।
हालांकि, यह एक बहुत ही बढ़िया कीमत पर आता है: दिल की धड़कन अंतराल जितनी अधिक होती है, उतनी देर तक टूटे सॉकेट कनेक्शन की पहचान होती है। Google ने जीसीएम को तैनात करने से पहले वास्तविक अंतराल स्थितियों में इन अंतराल का परीक्षण नहीं किया है। इन अंतराल के साथ समस्या नेटवर्क राउटर और मोबाइल वाहक के कारण होती है, जो कुछ मिनट निष्क्रियता के बाद निष्क्रिय सॉकेट कनेक्शन डिस्कनेक्ट करते हैं। आम तौर पर, यह सस्ते घर राउटर के साथ अधिक आम है, जिनके निर्माताओं ने निष्क्रिय निष्क्रिय सॉकेट कनेक्शन की अधिकतम आयु पर निर्णय लिया है, और संसाधनों को बचाने के लिए इसे समाप्त कर दिया है। ये राउटर केवल समवर्ती कनेक्शन की सीमित संख्या को संभाल सकते हैं, और इसलिए अधिभार को रोकने के लिए यह उपाय लिया जाता है। इसके परिणामस्वरूप जीसीएम सॉकेट समाप्त हो गए, और जब समय जीसीएम संदेश देने के लिए आता है, तो यह डिवाइस तक नहीं पहुंचता है। डिवाइस को केवल यह एहसास होगा कि कनेक्शन को तोड़ दिया गया है, जब यह दिल की धड़कन भेजने का समय है, 0 - 28 मिनट बाद, पुश अधिसूचना को कुछ परिस्थितियों में बेकार करना (जब संदेश समय-महत्वपूर्ण है, उदाहरण के लिए)। मेरे अनुभव में, अधिकांश सस्ता राउटर निष्क्रियता के लगभग 5-10 मिनट के बाद निष्क्रिय कनेक्शन को समाप्त करते हैं।
http://eladnava.com/google-cloud-messaging-extremely-unreliable/
Google क्लाउड संदेश सेवा करने के लिए एक विकल्प
Pushy (https://pushy.me/) एक स्वसंपूर्ण पुश अधिसूचना प्रवेश द्वार, पूरी तरह से स्वतंत्र है:
मैं इस और अन्य GCM मुद्दों के बारे में एक पूरा पोस्ट लिखा जीसीएम का। पुश अधिसूचनाएं प्राप्त करने के लिए, जीसीएम की तरह ही यह अपने स्वयं के पृष्ठभूमि सॉकेट कनेक्शन को बनाए रखता है। अंतर्निहित प्रोटोकॉल एमक्यूटीटी है, जो बेहद हल्के वजन वाले पब/उप प्रोटोकॉल है, जो बहुत कम नेटवर्क बैंडविड्थ और बैटरी का उपयोग करता है।
पुशी का एक बड़ा लाभ यह है कि पुश अधिसूचना (सर्वर से) भेजने के लिए कोड, और पुश अधिसूचनाओं के लिए डिवाइस को पंजीकृत करने के लिए कोड वास्तव में जीसीएम और पुशी के बीच अंतर-परिवर्तनीय है। इससे जीसीएम को लागू करने और इसे अस्थिरता के लिए कुचलने के बाद पुशी पर स्विच करना बहुत आसान हो जाता है।
(पूर्ण प्रकटीकरण: मैं अपने ही परियोजनाओं के लिए Pushy स्थापना की और कई क्षुधा एक ऐसी सेवा से लाभ होगा एहसास हुआ)
मैं भी इस व्यवहार देखा है और मुझे लगता है कि 10 मिनट की समय समाप्ति के कुछ प्रकार जब जुड़ा हुआ है वाई-फाई के माध्यम से। मैंने इसके बारे में Google समूह पर पोस्ट किया है, लेकिन अब तक कोई प्रतिक्रिया नहीं है: https://groups.google.com/d/msg/android-gcm/Y33c9ib54jY/vmJRFv0SmKYJ –