2012-07-26 11 views
47

GCM सर्वर द्वारा जारी किए गए एक पंजीकरण आईडी के लिए अधिकतम लंबाई क्या है की अधिकतम लंबाई? जीसीएम दस्तावेज इस जानकारी को प्रदान नहीं करता है। इसके लिए गुगलिंग से पता चलता है कि पंजीकरण आईडी प्रकृति में लंबाई तय नहीं है और लंबाई में 4K (4096 बाइट) तक हो सकती है। लेकिन ये Google से आधिकारिक उत्तर नहीं हैं। मुझे वर्तमान में पंजीकरण आईडी प्राप्त हो रही हैं जो 162 वर्ण लंबी हैं। क्या कोई मदद कर सकता है?GCM - पंजीकरण आईडी

+1

[एंड्रॉइड जीसीएम पंजीकरण आईडी अधिकतम लंबाई] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/11324666/android-gcm-registration-id-max-length) –

उत्तर

21

मैं इस बारे में भी पता है कि में दिलचस्पी है। मेरा रेग आईडी आकार 183 वर्ण है। मुझे संदेह है कि यह 512 वर्णों से अधिक नहीं होगा, हालांकि, अकेले 4K चलो। थोक अधिसूचना भेजने की कल्पना करो, एक 4 के रेग आईडी x 1000 = 4 एमबी संदेश का आकार!

अंत में, मैं सिर्फ 'पाठ' प्रकार मेरी MySQL तालिका में पंजीकरण आईडी स्टोर करने के लिए इस्तेमाल करते हैं। तो अगर Google मुझे 1K, 2K, या 4K (बहुत ही असंभव) reg id भेजता है, तो भी मैं इसे संभालने में सक्षम हूं।

अद्यतन: मैं एक नया reg आईडी आकार भर में आ गए हैं: 205

+1

तो अधिकतम gcmId लंबाई 512 वर्ण है? –

+1

यह बात है, हम नहीं जानते कि यह कितना समय हो सकता है। अब तक मैंने देखा है कि सबसे लंबा 205 अक्षर है। शायद दूसरे लोग देख सकते हैं कि उन्होंने एक लंबा देखा है। – azgolfer

+0

आपके ऐप के लिए आपके पैकेज का नाम आकार पर प्रभाव डालता है। मेरे परीक्षण में, हमने देखा है कि पैकेज की लंबाई को कम करके, यह जीसीएम से भेजे गए पंजीकरण टोकन के आकार को कम कर देता है। –

42

android-gcm मंच पर एक गूगल के डेवलपर confirms यह 4k

+0

एक और धागा, एक Google डेवलपर से एक ही जवाब: https://groups.google.com/forum/#!topic/android-c2dm/AUGlvmJPyMM बस पुष्टि के रूप में ... –

+1

वे जो कुछ भी चाहते हैं उसकी पुष्टि कर सकते हैं! एक डेवलपर की जरूरत केवल एक चीज है जो इस मूल्य पर एक सभ्य दस्तावेज है ... क्या यह इतना कठिन है? इस तरह आप किसी एप्लिकेशन में बग प्राप्त करते हैं जब आप 255 वर्णों (उचित मूल्य लेकिन तथ्य नहीं) की डीबी प्रविष्टि की अपेक्षा कर रहे हैं और आपको बाद में 255 प्राप्त होता है ... – mwm

+6

उसी Google समूह पोस्ट पर पढ़ना, ऐसा लगता है कि यह एक गलती थी , 4k संदेश के पेलोड की सीमा है, न कि reg आईडी। 255 इस पोस्ट के अनुसार सुरक्षित सीमा भी प्रतीत होता है। – diegopau

0

है यह वही है GCM दस्तावेज़ में कहा गया है,

एक JSON ऑब्जेक्ट जिसका फ़ील्ड संदेश के पेलोड डेटा के कुंजी-मूल्य जोड़े का प्रतिनिधित्व करता है। यदि मौजूद है, तो पेलोड डेटा को इरादे में अतिरिक्त डेटा के साथ, एप्लिकेशन डेटा के रूप में शामिल किया जाएगा। उदाहरण के लिए, "डेटा": {"स्कोर": "3x1"} के परिणामस्वरूप एक अतिरिक्त अतिरिक्त स्कोर स्कोर होगा जिसका मूल्य स्ट्रिंग 3x1 है।

कुंजी/मूल्य जोड़े की संख्या पर कोई सीमा नहीं है, हालांकि संदेश के कुल आकार (4 केबी) पर कोई सीमा है। मान किसी भी JSON ऑब्जेक्ट हो सकते हैं, लेकिन हम तारों का उपयोग करने की सलाह देते हैं, क्योंकि मानों को जीसीएम सर्वर में तारों में परिवर्तित किया जाएगा।

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

चीजों को थोड़ा जटिल बनाने के लिए, कुछ आरक्षित शब्द (जैसे collapse_key) हैं जिन्हें तकनीकी रूप से पेलोड डेटा में अनुमति दी जाती है। हालांकि, अगर अनुरोध में शब्द भी शामिल है, तो अनुरोध में मान पेलोड डेटा में मान को ओवरराइट करेगा। इसलिए इस तालिका में फ़ील्ड नामों के रूप में परिभाषित शब्दों का उपयोग करने की अनुशंसा नहीं की जाती है, यहां तक ​​कि उन मामलों में जहां उन्हें तकनीकी रूप से अनुमति दी जाती है। वैकल्पिक।

+4

यह अधिसूचना पेलोड को संदर्भित करता है, पंजीकरण आईडी नहीं। – Jake

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