2014-06-26 11 views
5

मेरे पास एक वेबसर्वर है जो उपयोगकर्ताओं को मेरे विकसित एंड्रॉइड ऐप में जीसीएम के साथ PHP अधिसूचनाओं के माध्यम से भेजता है। लगभग 3000 उपयोगकर्ता हैं, कुछ उपयोगकर्ताओं को प्रति दिन लगभग 20 नोटिफिकेशन प्राप्त होते हैं।Google क्लाउड मैसेजिंग सर्वर प्रतिक्रिया धीमी (1 मिनट)

यह 1 साल से अधिक समय तक पूरी तरह से काम करता है, लेकिन 5 दिनों के बाद से मुझे लगता है कि "https://android.googleapis.com/gcm/send" पर कॉल का प्रतिक्रिया समय 1 सेकंड से कम समय के बजाय 1 मिनट है। और फिर भी सभी सूचनाएं उपयोगकर्ताओं पर आती हैं।

यह निम्नलिखित तरीके से विकसित की है: http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

मैं 1 से अधिक दिन के लिए सूचनाएं भेजने अक्षम। फिर इसे फिर से शुरू किया, और कुछ मिनटों के लिए googleapis सामान्य रूप से प्रतिक्रिया दी, लेकिन फिर 60 सेकंड का प्रतिक्रिया समय।

ऐसा लगता है कि Google उद्देश्य पर ऐसा कर रहा है, लेकिन मुझे नहीं पता क्यों?

+0

यदि प्रेषण विफल रहता है तो क्या आप एक्सपोनियल बैक-ऑफ का उपयोग कर रहे हैं? जावा में उदाहरण के लिए * भेजें (संदेश संदेश, स्ट्रिंग पंजीकरण आईडी, int retries) *, * नोट: यह विधि सेवा अनुपलब्धता के मामले में पुनः प्रयास करने के लिए घातीय बैक-ऑफ का उपयोग करती है और इसलिए कई सेकंड के लिए कॉलिंग थ्रेड को अवरुद्ध कर सकती है । * Google इसे [तृतीय पक्ष एप्लिकेशन सर्वर की भूमिका] (http://developer.android.com/google/gcm/server.html#role) पर बताता है। Google आपके सर्वर से बहुत अधिक ट्रैफ़िक का पता लगा सकता है और एक सीमा डाल रहा है। – AlexBcn

उत्तर

0

http://developer.android.com/google/gcm/adv.html#throttling

अत्यधिक यातायात का प्रबंधन करने के लिए एक थ्रॉटलिंग सुविधा नहीं है ...

स्रोत: Receive Android GCM messages so slow?

+0

समस्या संदेश प्राप्त करने में देरी नहीं है, लेकिन android.googleapis.com तक पहुंचने में देरी है। – JarnoQ

3

कोशिश चल रहा है:

curl https://apis.google.com/ 

और

curl https://apis.google.com/ --ipv4 

यदि दूसरा एक तेज़ी से भाग गया, तो बस अपने सर्वर पर ipv6 को अक्षम करें, हो सकता है कि आपके सर्वर का आईएसपी आईपीवी 6 का समर्थन नहीं करता है, जो कि इससे पहले 2 मिनट की देरी हो जाती है और आईपीवी 4 पर स्विच हो जाती है।

एक और मुद्दा मैं हाल ही में में भाग थ्रॉटल GCM: how to avoid throttling

मूल रूप से गूगल अपने पुश संदेशों को थ्रोटल यदि आप समय की एक छोटी सी अवधि में एक ही उपयोगकर्ता के लिए बहुत सारे संदेश भेज देंगे था। यह "बैटरी को बचाने" और "बैंडविड्थ" (शायद उनके लोगों) है ... याद रखें कि क्या आप एक डिवाइस में डेटा को 10 बार से अधिक बार भेजना चाहते हैं और जब उपयोगकर्ता वास्तव में ऐप का उपयोग कर रहा है, तो यह हमेशा बेहतर होता है तत्कालीन उपयोगकर्ता और आपके सर्वर के बीच एक सीधा टीसीपी कनेक्शन खोलें :)

+1

धन्यवाद! मैंने बस सर्वर ले जाया और मुझे यह महसूस करने के लिए कुछ दिन लगे कि आईपीवी 6 इस मुद्दे का कारण बन रहा था। आप सर रॉक :) –

+0

बहुत बढ़िया; धन्यवाद!! इस आईपीवी 4 सलाह ने सिर्फ एक मुद्दा हल किया जिसे मैं समझ नहीं पाया और कहीं और कुछ भी नहीं ढूंढ पाया। – Arthur

+0

मुझे एक ही समस्या मिली! आईपीवी 6 ने इस मुद्दे का कारण बना दिया। धन्यवाद यह मेरा दिन –

0

सभी 3000 उपयोगकर्ताओं को भेजने के लिए आपने अपना कोड कैसे कार्यान्वित किया, Google प्रति अनुरोध 1000 उपयोगकर्ताओं को अनुमति देता है। मेरी मदद करने के लिए कुछ कोड दिखाएं।

+0

बचाया मैंने नहीं किया। संदेश सभी उपयोगकर्ताओं को नहीं भेजे जाते हैं। उपयोगकर्ता अपने स्वयं के फ़िल्टर के साथ परिभाषित कर सकते हैं। यह एक पेजर सेवा में प्रयोग किया जाता है। – JarnoQ

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