पुश सूचनाएँ कैसे काम करती हैं?


25

मैं सोच रहा हूं कि पुश नोटिफिकेशन सिस्टम कैसे काम कर रहा है?

क्या एक सक्रिय टीसीपी / आईपी कनेक्शन है जो Google सर्वर की पृष्ठभूमि में चलता है?


1
विकिपीडिया देखें - जो कि वास्तव में पढ़ना थोड़ा कठिन है। मूल रूप से, और आसान शब्दों में कहें: क्लाइंट सर्वर से जुड़ता है और सूचित करने के लिए कहता है - और जवाब तब आता है जब सूचना उपलब्ध होती है (या यदि कोई नहीं है) तो देरी हो जाती है, जिसके बाद उसके बाद एक नया अनुरोध। तो हाँ, इसके लिए आपकी बैटरी पर स्थायी पृष्ठभूमि टीसीपी / आईपी कनेक्शन की आवश्यकता होती है।
इज़ी

@ यदि यह सही नहीं हो सकता है, क्योंकि (1) डॉक्स का कहना है कि संदेश आने पर एक इरादे का निर्माण किया जाता है, और (2) एंड्रॉइड पर चलने वाला एक कनेक्शन खुला रख सकता है जो एंड्रॉइड कभी नहीं मार सकता है?
माइकल

@ मिचेल कौन से डॉक्स? मैं इसकी गहराई को समझने के लिए कोई एंड्रॉइड प्रोग्रामर नहीं हूं (और यह कोई चर्चा बोर्ड नहीं है), इसलिए मैं शायद यहां आपके साथ बहस नहीं कर सकता। मैंने सुना है कि श्रोताओं (प्रसारण के लिए) को गतिशील रूप से स्थापित किया जा सकता है - लेकिन मैंने कभी नहीं सुना है कि इरादों के बारे में (IMHO उन्हें घोषित किया जाना है Manifest)। मैं अच्छी तरह से "वास्तविक नौकरी" करते हुए कुछ Google सेवा की कल्पना कर सकता था, और ऐप बस "रिसीवर" पंजीकृत कर रहा था। ); ऊपर वर्णन अधिक "सामान्य", नहीं एंड्रॉयड विशिष्ट था, और मैं इसे आसान बनाने का प्रयास
इज़ी

जवाबों:


25

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

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

पुश नोटिफिकेशन का उपयोग करने का लाभ यह है कि नए डेटा की जांच के लिए ऐप्स को नियमित अंतराल पर नहीं चलना पड़ता है, जिससे बिजली और डेटा दोनों की बचत होती है। GCM की तरह एक केंद्रीकृत तंत्र होने का लाभ यह है कि डिवाइस को केवल एक खुले नेटवर्क कनेक्शन की आवश्यकता होती है और Android GCM सिस्टम केवल एक चीज है जिसे चलाने के लिए प्रत्येक ऐप के बजाय पृष्ठभूमि में अपने नेटवर्क को बनाए रखने के लिए चलना आवश्यक है। अपने सर्वर से कनेक्शन।


मैं केवल 1 टिप्पणी जोड़ूंगा: GCM संदेश 4KByte आकार में हो सकते हैं, इसलिए वे सीमित नहीं हैं। developer.android.com/google/gcm/gcm.html
मोसजी

इस कनेक्शन को क्या खुला रखा गया है? किसी भी एंड्रॉइड गतिविधि या सेवा को किसी भी समय मारा जा सकता है।
माइकल

1
जानकारी के लिए धन्यवाद। मेरे सवाल के अनुसार , क्या आप जानते हैं कि खोले गए सॉकेट का URL क्या है? (डिवाइस से GCM सर्वर के लिए कनेक्शन का URL जो खोला गया है और अधिसूचना डेटा के लिए उपयोग किया जाता है)
Sabeti

6

Android OS अब पुश सूचनाकरण WS के लिए GCM (Google क्लाउड मैसेजिंग) का उपयोग कर रहा है। आप यहां बेहतर विचार प्राप्त कर सकते हैं ; यह आपको अपने जीवन चक्र के साथ पूर्ण पुश अधिसूचना सेवा के बारे में एक वास्तुकला अवलोकन देगा।

आशा है कि यह मदद करेगा।


क्या Google के सर्वर पर भरोसा किए बिना एक समान काम करने का एक तरीका है?
माइकल

@ एमिकेल अमेज़न क्लाउड सेवाओं का उपयोग? वे एक तुलनीय अवधारणा है। लेकिन "कैसे" के लिए, यह गलत जगह है;)
इज़ी

1

पुराने सवाल का देर से जवाब लेकिन उसे डालने लायक।

GCM को पिछले अप्रैल 2018 को पदावनत किया गया था और Google ने FCM का उपयोग करने की सिफारिश की है जो GCM के समान है।

  1. हमें अपना स्वयं का पंजीकरण या सदस्यता पुनर्प्राप्ति तर्क लिखने की आवश्यकता नहीं है
  2. आप फायरबेस नोटिफिकेशन का उपयोग कर सकते हैं, एक वेब कंसोल के साथ सर्वर रहित नोटिफिकेशन सॉल्यूशन जो किसी को भी फायरबेस एनालिटिक्स इनसाइट्स के आधार पर विशिष्ट ऑडियंस को लक्षित करने के लिए सूचनाएं भेजने देता है।
  3. इसमें GCM का मुख्य बुनियादी ढांचा है।
  4. एक एकल संदेश एक ग्राहक एप्लिकेशन को 4KB तक का पेलोड स्थानांतरित कर सकता है।

1
एप्लिकेशन के दृष्टिकोण से एफसीएम जीसीएम के समान नहीं है, यह समान है। FCM GCM का नया नाम है।
रॉबर्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.