7

में पुश अधिसूचना भेजने के लिए प्रयोग किया जाता है मुझे पता है जो प्रोटोकॉल Android उपकरणों के लिए धक्का अधिसूचना भेजने के लिए और GCM में पुश अधिसूचना अनुरोध भेजने के लिए प्रयोग किया जाता है जो चाहते हैं।प्रोटोकॉल एंड्रॉयड

यह है या नहीं HTTP, HTTPS वरना कुछ बात?

उत्तर

5

दो प्रोटोकॉल http और xmpp जो आप GCM सर्वर से संदेश भेजने के लिए उपयोग कर सकते हैं कर रहे हैं।

अब आप करने के लिए अपने ऊपर क्या आप उपयोग करना चाहते। अगर आप संदेश प्रसारित करना चाहते हैं तो आपको http के साथ जाना चाहिए।

आप एक ही http अनुरोध में 1000 संदेश प्रसारित कर सकते हैं। और एक अनुरोध में xmpp के माध्यम से केवल एक संदेश ...

Http केवल नीचे स्ट्रीमिंग (3 पार्टी अनुप्रयोग सर्वर -gcm-भीड़ डिवाइस)

लेकिन gcm के लिए इस्तेमाल किया जा सकता है http का उपयोग कर स्ट्रीमिंग अप का समर्थन नहीं करेंगे। इसके लिए आपको xmpp.Xmpp का उपयोग करना चाहिए ताकि स्ट्रीमिंग और डाउन स्ट्रीमिंग दोनों के लिए उपयोग किया जा सके।

पुश अधिसूचना का कार्यान्वयन बहुत आसान हो सकता है यदि आप http के साथ जा रहे हैं और यदि आप xmpp.but के साथ जा रहे हैं तो बहुत अधिक कठिन Google ने xmpp को कार्यान्वित करने के लिए विस्तृत ट्यूटोरियल प्रदान किया है। तो कृपया Google डेवलपर साइट पर एक नज़र डालें। (यानी, यह है

संदेश पहुंचाने के रास्ते प्रोटोकॉल आपके द्वारा चुनी गई पर आधारित है, या तो HTTP या XMPP:

+0

और क्या करने के लिए डिवाइस संचार प्रोटोकॉल GCM बारे में क्या? –

+0

पुश अधिसूचना में आपको क्लाइंट (एंड्रॉइड डिवाइस) [डाउनस्ट्रीम] प्रोटोकॉल जीसीएम के लिए जीसीएम के बारे में चिंता करने की ज़रूरत नहीं है, यह आपके लिए यह कार्य करता है। लेकिन यदि आप केवल xmpp प्रोटोकॉल की तुलना में स्ट्रीमिंग कर रहे हैं, तो – Dev

+0

प्रक्रिया में उपयोग किया जाएगा, मुझे पता है कि जीसीएम मेरे लिए यह करेगा, लेकिन अगर मेरा ग्राहक मुझसे पूछता है तो क्या होगा। –

1

@user3523641 के जवाब और आगे बातचीत को देखते हुए, मैं आगे समझाने की कोशिश करता हूँ वही)। जादू और काम करने का मूल तरीका GCM सर्वर और उपयोगकर्ता के डिवाइस के बीच खोला गया सॉकेट छोड़ रहा है।

इस तरह, एक उपयोगकर्ता एक संदेश प्राप्त होगा जब, इस खोला सॉकेट का उपयोग किया जाएगा और खुद के माध्यम से संदेश भेजें। यह GCM सर्वर को यह जानने में भी मदद करता है कि कौन से डिवाइस जुड़े हुए हैं या नहीं। इस प्रकार, यदि आपका तीसरा पक्ष सर्वर कहता है कि किसी संदेश को एक संदेश भेजा जाना चाहिए और GCM सर्वर जानता है कि उपयोगकर्ता कनेक्ट नहीं है, तो वह उस समय इसे नहीं भेजेगा, लेकिन कनेक्शन फिर से स्थापित होने के बाद प्रयास करेगा, इसलिए यह व्यर्थ में कनेक्शन प्रयासों को बर्बाद नहीं करेगा। डिफ़ॉल्ट टाइमआउट 4 weeks है, हालांकि, इसे बदला जा सकता है।

प्रति सरकारी GCM प्रलेखन के रूप में:

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

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

आप अधिक जानकारी here पा सकते हैं।

6

तृतीय पक्ष सर्वर और जीसीएम सर्वर (HTTP या XMPP) के बीच संचार के प्रोटोकॉल का पहले से ही अन्य उत्तरों में उल्लेख किया गया था।

डिवाइस और जीसीएम सर्वर के बीच संचार का प्रोटोकॉल जीसीएम दस्तावेज में चर्चा नहीं किया गया है, क्योंकि आपको इसे एंड्रॉइड एप्लिकेशन डेवलपर के रूप में सीधे एक्सेस नहीं करना है, और इसलिए आपको इसके बारे में जानने की आवश्यकता नहीं है।

हालांकि, यहां जीसीएम बनाने वाली टीम के Google डेवलपर से उद्धरण दिया गया है, जो कनेक्शन के बारे में कुछ बातें कहता है। वह जो कहता है, उससे आप केवल यह जान सकते हैं कि यह एक दीर्घकालिक टीसीपी कनेक्शन है।

जीसीएम एक दीर्घकालिक कनेक्शन बनाए रखता है - और अगर यह कनेक्शन टूट गया है तो फिर से कनेक्ट हो जाता है। एक राउटर/एपी/एनएटी को टीसीपी कनेक्शन को समाप्त करने के लिए एक एफआईएन या आरएसटी भेजना है - इसलिए जीसीएम और सर्वर कनेक्शन मर जाएंगे।

हालांकि कई राउटर और मोबाइल ऑपरेटर ऐसा नहीं करते हैं, और तो जीसीएम को दिल की धड़कन पर ~ 15 मिनट, वाईफ़ाई पर 15 मिनट, मोबाइल पर अधिक निर्भर होना चाहिए।

(बोली कि व्यक्ति द्वारा एक answer से लिया जाता है)

0

यह दोनों HTTP और XMPP

जब संदेश सफलतापूर्वक संसाधित होने का उपयोग करता है, HTTP प्रतिसाद 200 स्थिति है और शरीर में संदेश की स्थिति (संभावित त्रुटियों सहित) के बारे में अधिक जानकारी होती है। जब अनुरोध अस्वीकार कर दिया जाता है, तो HTTP प्रतिक्रिया में एक गैर-200 स्थिति कोड होता है (जैसे 400, 401, या 503)।

आईओएस हालांकि, एक मालिकाना बंदरगाह पर एक समर्पित टीसीपी कनेक्शन की आवश्यकता है, और GAE पर्यावरण बंदरगाह 80.

enter image description here

संदेश आकार सीमा 1024 बाइट्स HTTP पर छोड़कर किसी भी बाहरी प्रोटोकॉल अनुमति नहीं है। Google संदेशों प्रेषक कुल में भेजता है की संख्या, और संदेशों की संख्या एक प्रेषक एक विशिष्ट उपकरण के लिए भेजता है को सीमित करता है

enter image description here

इस तरह इन घटकों बातचीत है:

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

चेक बाहर इस अधिक जानकारी के लिए ->

Google Cloud Messaging for Android (GCM)

Android Cloud to Device Messaging Framework

Cloud Messaging

Cloud to Device Messaging

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