android - क्या रीयल टाइम पुश अधिसूचना के पास एंड्रॉइड समर्थन है?




push-notification (11)

Google सी 2 डीएम की कमी कर रहा है, लेकिन इसके स्थान पर उनके परिचय जीसीएम (Google क्लाउड मैसेजिंग) मैं उनके कोटा और इसके मुफ़्त नहीं सोचता! हालांकि एंड्रॉइड 2.2+ की आवश्यकता है! http://developer.android.com/guide/google/gcm/index.html

मैंने हाल ही में ऐप को ऐप्स नोटिफिकेशन में लगभग तात्कालिक नोटिफिकेशन प्राप्त करने के लिए आईफोन ऐप्स की क्षमता के बारे में सीखा।

यह पुश अधिसूचनाओं के रूप में प्रदान किया जाता है, एक bespoke प्रोटोकॉल जो हमेशा आईफोन के लिए डेटा कनेक्शन पर रहता है और ऐप में बाइनरी पैकेट संदेश भेजता है, जो सर्वर ऐप से 0.5-5 सेकंड के बीच फोन ऐप पर अविश्वसनीय रूप से जल्दी से पॉप अप करता है जवाब देने का समय। यह डेटा के बजाय डेटा के रूप में भेजा जाता है - डेटा योजना के हिस्से के रूप में चार्ज किए गए बहुत छोटे पैकेट में आने वाले संदेशों के रूप में नहीं।

मैं जानना चाहता हूं कि, एंड्रॉइड का उपयोग करके, या तो एक समान सुविधा है, या फिर एंड्रॉइड एपीआई का उपयोग करके इसके करीब कुछ लागू करना संभव है या नहीं। स्पष्टीकरण के लिए, मैं इस तरह परिभाषित करता हूं:

  • एक एसएमएस संदेश नहीं, लेकिन कुछ डेटा संचालित समाधान
  • वास्तविक समय के रूप में संभव है
  • स्केलेबल है, यानी, एक मोबाइल ऐप के सर्वर हिस्से के रूप में, मैं सेकंड में हजारों ऐप उदाहरणों को सूचित कर सकता हूं

मैं सराहना करता हूं कि ऐप खींचने, HTTP अनुरोध / प्रतिक्रिया शैली के आधार पर हो सकता है, लेकिन आदर्श रूप से मैं मतदान नहीं करना चाहता हूं जो अधिसूचना की जांच के लिए भारी है; इसके अलावा यह डेटा योजना को निकालने वाली ड्रिप की तरह है।


आप एक्सएमपीपी कार्यान्वयन के साथ क्यों नहीं जाते हैं। फिलहाल gtalk, jabber, citadel आदि सहित कई सार्वजनिक सर्वर उपलब्ध हैं। एंड्रॉइड के लिए एक एसडीके भी SMACK के रूप में उपलब्ध है। यह हम पुश अधिसूचना नहीं कह सकते हैं लेकिन एक्सएमपीपी का उपयोग करके आप क्लाइंट और सर्वर के बीच एक कनेक्शन खोल सकते हैं जो दो तरह के संचार की अनुमति देगा। मतलब एंड्रॉइड क्लाइंट और सर्वर दोनों एक दूसरे से संवाद कर सकते हैं। वर्तमान में यह एंड्रॉइड में पुश की आवश्यकता को पूरा करेगा। मैंने एक नमूना कोड लागू किया है और यह वास्तव में बहुत अच्छा काम करता है


जीसीएम के साथ समस्या यह है कि प्रक्रिया में बहुत सी विन्यास शामिल है:

  • आपको एंड्रॉइड ऐप में बहुत सारे बॉयलरप्लेट जोड़ना होगा
  • आपको जीसीएम सर्वर के साथ काम करने के लिए बाहरी सर्वर को कॉन्फ़िगर करने की आवश्यकता है
  • आपको परीक्षण लिखना होगा

यदि आपको साधारण चीजें पसंद हैं (मेरे जैसे) आपको UrbanAirship प्रयास करना चाहिए। यह (आईएमएचओ) बहुत सी कॉन्फ़िगरेशन किए बिना आपके ऐप में जीसीएम का उपयोग करने का सबसे आसान तरीका है। यह आपको यह जांचने के लिए एक सुंदर जीयूआई भी देता है कि आपके जीसीएम संदेश सही तरीके से वितरित किए जा रहे हैं।

  • आप दस्तावेज़ ढूंढ सकते हैं और here मार्गदर्शिका शुरू कर सकते हैं
  • आप here एक नमूना आवेदन पा सकते हैं

नोट: मैं किसी भी तरह से UrbanAirship से अपील नहीं कर रहा हूं


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

26 जून, 2012 तक, Google क्लाउड मैसेजिंग डिवाइस पर चल रहे अनुप्रयोगों को संदेश भेजने का पसंदीदा तरीका है।

पहले (और अब बहिष्कृत), सेवा को क्लाउड टू डिवाइस मैसेजिंग कहा जाता था।


मुझे यह नहीं पता कि मैं इसे कहां पढ़ता हूं, लेकिन मेरा मानना ​​है कि जीमेल ई-मेल पुश करने के लिए एक खुले टीसीपी कनेक्शन का उपयोग करता है।


मैं इसमें देख रहा हूं और जेम्स द्वारा अनुशंसित PubSubHubBub एक विकल्प नहीं है। PubSubHubBub सर्वर संचार के लिए सर्वर के लिए है

"मैं एक एनएटी के पीछे हूं। क्या मैं एक हब की सदस्यता ले सकता हूं? हब मुझसे जुड़ नहीं सकता है।"

/ बेनामी

नहीं, पीएसएचबी एक सर्वर से सर्वर प्रोटोकॉल है। यदि आप एनएटी के पीछे हैं, तो आप वास्तव में एक सर्वर नहीं हैं। जबकि हमने लटकने के लिए वैकल्पिक पीएसएचबी एक्सटेंशन के लिए विचारों को लात मार दिया है (जैसे "लंबे मतदान") और / या ऐसे ग्राहकों के लिए संदेशबॉक्स मतदान, यह मूल कल्पना में नहीं है। कोर स्पेक केवल सर्वर-टू-सर्वर है।

/ ब्रैड फिट्जपैट्रिक, सैन फ्रांसिस्को, सीए

स्रोत: http://moderator.appspot.com/#15/e=43e1a&t=426ac&f=b0c2d (सीधा लिंक संभव नहीं है)

मैं निष्कर्ष पर आया हूं कि धूमकेतु HTTP पुश का उपयोग करना सबसे आसान तरीका है। यह एक सरल और अच्छी तरह से समझी गई समाधान दोनों है लेकिन इसे वेब अनुप्रयोगों के लिए भी पुनः उपयोग किया जा सकता है।


मैंने हाल ही में एंड्रॉइड के लिए एमक्यूटीटी http://mqtt.org के साथ खेलना शुरू कर दिया है जो आप पूछ रहे हैं (यानी एसएमएस नहीं, बल्कि डेटा संचालित, लगभग तत्काल संदेश वितरण, स्केलेबल, मतदान नहीं, आदि)

यदि यह मददगार है तो मेरे पास पृष्ठभूमि जानकारी के साथ एक ब्लॉग पोस्ट है http://dalelane.co.uk/blog/?p=938

(नोट: एमक्यूटीटी एक आईबीएम तकनीक है, और मुझे यह इंगित करना चाहिए कि मैं आईबीएम के लिए काम करता हूं।)


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

यदि नहीं, और मुझे उम्मीद है कि आप नहीं कर सकते हैं , तो आप एक्सएमपीपी के अपने संस्करणों को बंडल कर रहे हैं। यह एक दर्द है, लेकिन यदि एक्सएमपीपी को स्टैंडअलोन लाइब्रेरी के रूप में अलग से बंडल किया जाता है तो इसे आसान बना दिया जा सकता है।

आप PubSubHubub पर भी विचार कर सकते हैं, लेकिन मुझे इसका नेटवर्क उपयोग नहीं पता है। मेरा मानना ​​है कि यह एक्सएमपीपी के ऊपर बनाया गया है।


XMPP एक अच्छा समाधान है। मैंने इसे पुश सक्षम, रीयलटाइम, एंड्रॉइड एप्लिकेशन के लिए इस्तेमाल किया है। एक्सएमपीपी शक्तिशाली, अत्यधिक एक्स्टेंसिबल और एकीकृत करने और उपयोग करने में आसान है।

बहुत सारे मुफ्त एक्सएमपीपी सर्वर हैं (यद्यपि सौजन्य से आपको उनका दुरुपयोग नहीं करना चाहिए) और ऐसे खुले स्रोत सर्वर हैं जिन्हें आप अपने स्वयं के बक्से पर चला सकते हैं। OpenFire एक उत्कृष्ट विकल्प है।

जैसा कि आप चाहते हैं लाइब्रेरी स्मैक नहीं है जैसा ऊपर बताया गया है, यह एक aSmack । लेकिन ध्यान दें, यह एक निर्माण वातावरण है - आपको पुस्तकालय बनाना होगा।

यह एक गणना है जो मैंने एक्सएमपीपी समाधान के बैटरी जीवन प्रभाव पर किया था:

एंड्रॉइड क्लाइंट को एक्सएमपीपी सर्वर को दिल की धड़कन भेजने के लिए समय-समय पर जागने के द्वारा लगातार टीसीपी कनेक्शन बनाए रखना चाहिए।
यह बिजली के उपयोग के मामले में स्पष्ट रूप से लागत लगाता है। इस लागत का अनुमान नीचे प्रदान किया गया है:

  • 1400 एमएएच बैटरी का उपयोग करना (जैसा कि नेक्सस वन और एचटीसी डिजायर में दिया गया है)
  • एक 3 जी नेटवर्क से जुड़ा एक निष्क्रिय डिवाइस, लगभग 5 एमए का उपयोग करता है
  • जागने, दिल की धड़कन, नींद चक्र हर 5 मिनट में होता है, 300 एमए पूरा करने और उपयोग करने में तीन सेकंड लगते हैं
  • प्रति घंटे बैटरी उपयोग में लागत इसलिए है:
    • 36 सेकंड 300 एमए = 3 एमएएच दिल की धड़कन भेज रहा है
    • निष्क्रिय होने पर 3600 सेकेंड 5 एमए = 5 एमएएच
    • 4:95 + 3 = 7: 95 एमएएच संयुक्त
  • एक 1400 एमएएच बैटरी निष्क्रिय होने पर लगभग 11.6 दिन और एप्लिकेशन चलाने पर 7.3 दिन तक चलती है, जो बैटरी जीवन में अनुमानित 37% की कमी का प्रतिनिधित्व करती है।
  • हालांकि, 37% की बैटरी लाइफ में कमी अभ्यास में पूर्णतया सबसे खराब मामला दर्शाती है कि उपकरण शायद ही कभी पूरी तरह से निष्क्रिय होते हैं।

Xtify मंच पर एक नज़र डालें। ऐसा लगता है कि वे यही कर रहे हैं,


चूंकि GTalk एसडीके से चला गया है, तो 'मानक' पुश मैसेजिंग सिस्टम बनाना एक अच्छा विचार हो सकता है। इस तरह, केवल एक सेवा को चलाने के लिए, केवल एक अतिरिक्त टीसीपी कनेक्शन खोलने की जरूरत है। आवेदनों को Intents का उपयोग करके इस सेवा से बात करनी चाहिए और पहले सेवा से अधिसूचना भेजने और प्राप्त करने की अनुमति का अनुरोध करना चाहिए। सेवा को तब उपयोगकर्ता को सूचित करना चाहिए कि एक नया एप्लिकेशन संदेश भेजना और प्राप्त करना चाहता है। उपयोगकर्ता तब अनुमति प्रदान या अस्वीकार कर देगा, इसलिए वह नियंत्रण में रहता है। एप्लिकेशन तब सेवा में एक एक्शन + श्रेणी पंजीकृत करेगा, इसलिए सेवा जानता है कि धक्का संदेश कैसे वितरित किया जाए।

क्या एक अच्छा विचार होगा या नहीं?





push-notification