2013-01-03 26 views
8

मैंने अपने एंड्रॉइड एप्लिकेशन में जीसीएम को एकीकृत करना शुरू कर दिया है। startup tutorial की सहायता से मैंने नमूना डेमो सेट किया है और यह शानदार काम करता है। मुझे यह भी समझा गया कि response statuses प्राप्त हुआ जब मेरा सर्वर जीसीएम को संदेश भेजता है, जो मेरा मानना ​​है कि मेरे सर्वर और जीसीएम सर्वर के बीच संचार की स्थिति को दर्शाता है।एंड्रॉइड ऐप पर इच्छित संदेश वितरित होने के बाद मेरे सर्वर को जीसीएम से पावती प्राप्त हो सकती है?

मेरा सवाल है, क्या जीसीएम सर्वर और एंड्रॉइड एप्लिकेशन के बीच संचार की स्थिति प्राप्त करने का कोई तरीका है? असल में एक पावती यह दर्शाती है कि क्या इच्छित संदेश सफलतापूर्वक वितरित किया गया है या नहीं। मैंने यह भी पढ़ा है कि default timeout 4 सप्ताह है, जब तक time_to_live ध्वज सेट नहीं किया जाता है, जो मेरी समझ को सक्षम बनाता है कि जीसीएम कतार बनाए रखता है और निश्चित रूप से संदेश वितरण सुनिश्चित करेगा।

हालांकि, विश्वसनीयता को सुनिश्चित करने के लिए, तीसरे पक्ष के सर्वर के रूप में, क्या मुझे कभी भी एक ही संदेश भेजने की आवश्यकता है (यदि यह पहले ही जीसीएम आधारभूत संरचना द्वारा ख्याल नहीं रखता है)? अगर मुझे पुनः प्रयास करने की ज़रूरत है, तो विफलता का निर्धारण कैसे करें?

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

उत्तर

2

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

प्रतिक्रिया आप GCM सर्वर से प्राप्त (जैसा कि आप जानते) बस you know either करने देता है:

success: Number of messages that were processed without an error. 

या

failure: Number of messages that could not be processed. 

मतलब आप पता कर सकते हैं कि जो पंजीकरण आईडी ठीक से प्रोसेस किया गया (जैसे वैध मान, अभी भी जीसीएम के साथ पंजीकृत हैं), लेकिन वास्तविक डिवाइस पर संदेशों को सफलतापूर्वक वितरित नहीं किया गया था या नहीं।

+0

धन्यवाद Selsine। मैंने इसके बारे में और अधिक विचार दिए और भेजे गए संदेश पर विश्वास करें यदि मान लीजिए कि कम से कम नहीं खोया गया है! इसलिए दूसरे को भेजने में कोई फर्क नहीं पड़ता क्योंकि पहले से ही भेजा गया कोई भी जीसीएम तंत्र की मदद से जल्दी या बाद में वितरित किया जाएगा। –