I'm writing an Android app which will be making use of the cloud-2-device messaging (C2DM) service provided by Google and which is expected, at selected peak periods of the day, to be sending many thousands of messages in a short amount of time.
Google insists that your server should queue up the requests that you're planning to send to their server and use 'exponential backoff' for failed / delayed requests.
Just wondering if there are any good examples of this kind of setup in .NET / C# and/or any 3rd party libraries which handle the queuing and backoff stuff.
OK, I ended up just spending the time and writing my own. I've decided to give back to StackOverflow (which has given to me for so long), so here's my solution for download:
http://wemakeapps.net/downloads/c2dm.sender.zip
This is a .NET4.0 solution to build a .exe which you can then run periodically using a scheduled task. Note that this is very much prepared for you to add your own code, it's well commented and I've tried to point out where you need to run off to your own datastore to retrieve the IDs of the registered devices and decide what you need to send them.
A modified version of this solution has been running successfully for a very high-traffic eCommerce site, pushing notifications to upwards of 10,000 devices every day.