Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C2DM TO Google Cloud Messaging (GCM)

As you may have seen, Google is migrating its Push Notification System.

Google Developer guide for GCM

I guess I am not alone wondering : are the tokens obtained from C2DM still valid for GCM ?

If not, it means that I need all my users to update my app with a new version updating the tokens on my servers ...

OR

I can keep the parallel systems which is something I don't think it's a good solution

OR

Continue using C2DM until it's finished, then I die with it :-)

like image 439
Camille R Avatar asked Jun 27 '12 18:06

Camille R


People also ask

What is difference between FCM and GCM?

FCM is the new version of GCM under the Firebase brand. It inherits GCM's core infrastructure to make sure we continue to deliver messages reliably on Android, iOS and Chrome. Save this answer.

What is a GCM in Android goggle message pack goggle count messaging goggle could messaging for Chrome none of the above?

Google Cloud Messaging (GCM) was a mobile notification service developed by Google that enables third-party application developers to send notification data or information from developer-run servers to applications that target the Google Android Operating System, as well as applications or extensions developed for the ...

Is GCM deprecated?

Google Cloud Messaging (GCM) Deprecated by Google.

How do I convert GCM to FCM?

Migrate GCM project to FCMFrom the Firebase console, click Add Project. From the drop-down box, select your GCM project from the list of your existing Google Cloud projects. Click Add Firebase. From the Firebase welcome screen, select Add Firebase to your Android App.


2 Answers

Although client side migration is easy (just change the 'sender' from email address to a project id), you will still face transition headaches if your app has been using C2DM for a while. See my question here: Posting GCM notification to existing C2DM registration ids

Basically the problem is during the transition, you need to maintain device registration ids from the old C2DM app, and the new reg ids from your newer app that uses GCM. Unless you can force all your users to upgrade all at once, you have to build additional logic (i.e. add a new column in the database table to indicate GCM reg id) in the server to deal with sending notifications to both C2DM and GCM for a foreseeable future.

If your server only send notifications to all devices, then this should be easy migration, as you can just blast both C2DM and GCM notifications to all devices in your database, and progressively remove stale or those NotRegistered devices from the old C2DM registrations. As time goes by you should see less and less C2DM device registration ids in your database.

like image 111
azgolfer Avatar answered Sep 28 '22 18:09

azgolfer


I had migrated my app from C2DM to GCM. No, I shouldn't say migrated. The correct term to be 'co-exist' for both C2DM and GCM. Because I can't force all my current user upgrade to GCM. My goal is to make sure both new(refer to GCM) and exist(refer to C2DM) user able to get push messaging.

For the client side:

  1. Change sender to project id

For the server side:

  1. Add a new column in the db to store GCM registration id.
  2. If user record with gcm register id > then push to gcm server > else c2dm server

So far I am able to achieve my objection. But my only concern is, when the c2dm going to fully shutdown? If the day really coming, how I suppose to force my old user upgrade to gcm?

like image 35
Jason Avatar answered Sep 28 '22 18:09

Jason