Hello Francesco,
I saw your entire presentation
here. It was very helpful!
In this group there are several discussions around delays in GCM deliver. I studied those and tried to device a solution where these can be minimized. The most reliable way seems to be set TTL to 0 so that GCM doesnt need to store or que these messages...
I have some questions around GCM message delivery behavious that i observed:
- If one sets the TTL as 0 and delay_while_idle=false, i believe that message is not stored on GCM and sent to device immediately. However - i have done extensive testing on my side and the observation is that GCM is unable to deliver ALL these messages to the target device.
What i think happens (in theory)
- Throttling should not be happening in this case - since the TTL is 0 and delay_while_idle is false - which means - GCM receives msg from app server and immediately shoots it off to the device
What i observe real time:
- If the device is active (lets say i have a phone call on going, or browsing the internet) - the message is received immediately almost every time. However - when the device is not active - the GCM delivery is inconsitent - sometime you get the message - sometimes you dont... I have made sure to keep Phone Wake Lock on receiving the intent - so that problem is ruled out. The device is connected to the WIFI all the time since i am testing with a ping to my app server every minute!
- I even tested sending 50 msgs in rapid succession once the device is active - and all of them were received successfully
So - in this case - do you think there is some throttling that is done by GCM? Or something else going on here?
Appreciate your response and of course - a BIG THANK you to you guys for this fantastic service. Hope it keeps improving and many more features get added as it matures !
Cheers
flyingbag