Google Cloud Messaging

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Google Cloud Messaging
GCM Architecture.svg
Overview of the GCM Service architecture.
Developer(s) Google
Target platform(s) Android, Chrome
Programming language(s) Java
Status Active
License Proprietary

Google Cloud Messaging (commonly referred to as GCM) is a mobile 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 Google Chrome internet browser. It is available to developers free of charge. The GCM Service was first announced in August 2013 as a successor to Google's now-defunct Android Cloud to Device Messaging (C2DM) service, citing improvements to authentication and delivery, new API endpoints and messaging parameters, and the removal of limitations on API send-rates and message sizes.[1]

Development

Lua error in package.lua at line 80: module 'strict' not found. GCM first launched as Google's Android Cloud to Device Messaging (C2DM) service, first featured in Android 2.2 by Google.[2][3][4]

The transition to Google Cloud Messaging was first announced when the Android service was unveiled on June 27, 2012, at Google I/O.[5] Shortly after announcing the Google Cloud Messaging service, Google published documentation to guide application developers with migrating from the C2DM and onto the new service.[6] Migrating to the service required SDK and code changes, as well as a release of an application update to the publish repository (such as Google Play) for downloading and updating.

The Chrome service was announced before Google I/O 2013 in a blog post titled 'Building efficient apps and extensions with push messaging.'[7]

At [I/O] 2015, Google announced a new SDK and iOS support.

Technical details

Google Cloud Messaging functions using server APIs and SDKs, both maintained by Google. The GCM has the ability to send push notifications, deep-linking commands, and application data. Larger messages can be sent with up to 4 KB of payload data.[8]

Upon allowing the application permission to receive and display notifications, the client application sends a registration API request to the Google Cloud Messaging interface to begin the registration process. The GCM Service receives and acknowledges the request and responds by giving the device a GCM Registration ID, a unique identifier that the developer later uses to send a notification to the individual device. The identifier is stored onto the device, and is typically sent to the developer's application server to be stored. The GCM Registration ID is a randomly-generated identifier that does not contain any personal or device information that could allow a developer to discover the personal identity of the user.[9] When the developer wishes to send a notification event to a device, the process begins with an API POST request being sent to the GCM Authentication Service. The POST request includes the GCM Registration ID, priority, optional values and links, and the information that is to be displayed on the device upon its arrival. Upon successful verification of the GCM Registration ID and other credentials, an authenication token is returned. Both identifiers are then sent to the GCM Service to be enqueued and delivered to the device.

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.

External links