I need to use a PUSH notification system for my Android application. I know that the most known service is Google Cloud Messaging (GCM). But there are others messaging system like RabbitMQ, that is based on the AMQP standard, and that simply allows to build PUSH notification service.
So, the question is, what are the advantages (and/or drawbacks) of using GCM, than RabbitMQ (or others messaging system) ?
If we are developing Push messaging with RabbitMQ, you have to write the pub sub service on android. On server side, to be connected to many more devices using pubsub you have to a cluster of rabbitmq servers. If you are using GCM, you dont have to do all those mentioned. Google does this for you.
Related
Google has this Google Cloud Messaging info for integration with iOS
What is the difference between using Google Cloud Messaging or iOS for the same purpose?
Is one more efficient than the other? Is battery or network load different?
Google Cloud Messaging is originally a platform to send notification for Android. They added an iOS SDK, but using their SDK on iOS means that you are using both GCM and Apple Push notification service:
Push for iOS device => Google Cloud Messaging => Apple APNS => Device
If you are only developing an iOS app, it is best to use APNS directly. If you already have all your infrastructure set up for GCM, then you may save you a bit of code by supporting only GCM to address both iOS and Android.
However there is no specific technical benefit doing so.
In addition to the other answer, GCM supports upstream sending (sending messages from the client to the server), which APNS does not.
I want to send some info messages to my users or disable my Android application remotely.
I want to know if it is possible to send message (Not SMS) to my android application from my server. It yes how can I do that?
The former Android Cloud to Device Messaging (C2DM) (now Google Cloud Messaging for Android) is a service that helps developers send data from servers to their applications on Android devices.
In the past there was Cloud 2 Device Messaging Frameword C2DM. It is superseded by Google Cloud Messaging for Android.
You can also use xmpp for that
Documention Found
xmpp.org/
I am developing android application that would receive data from server any time.i have searched in google to get some information.
1)android cloud to device messaging(C2DM).
2)persistent TCP/IP connection.
how to implement C2DM function and other one how to register C2DM?.please explain detail and send me sample application
C2DM is deprecated and you can use GCM for your requirement
Google Cloud Messaging for Android (GCM) is a service that helps developers send data from servers to their Android applications on Android devices. This could be a lightweight message telling the Android application that there is new data to be fetched from the server (for instance, a movie uploaded by a friend), or it could be a message containing up to 4kb of payload data (so apps like instant messaging can consume the message directly). The GCM service handles all aspects of queueing of messages and delivery to the target Android application running on the target device
This document describes how to write an Android application and the server-side logic, using the helper libraries (client and server) provided by GCM.
Check these links,
http://developer.android.com/guide/google/gcm/gs.html
http://developer.android.com/guide/google/gcm/demo.html
http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/19226-android-push-notification-gcm-framework-tutorial.html
http://fundroiding.wordpress.com/2012/06/29/google-cloud-messaging-for-android-gcm-simple-tutorial/
for client side app you can find the code here
https://github.com/marknutter/GCM-Cordova
c2dm is deprecated.
https://developers.google.com/android/c2dm
Maybe you'd better start with GCM
best regards
I was just looking at the new Google Cloud Messaging (GCM) and I was wondering if it is possible to use GCM for Instant Messaging on your Android application?
I saw you can send data, like a message, from a server, but is it also possible to send from one device to another one?
And how would this work?
Some example code would be really helpful..
Tnx!
The official docs on Google Cloud Messaging for Android does mention that GCM can be used to develop an instant messaging app.
...or it could be a message containing up to 4kb of payload data (so
apps like instant messaging can consume the message directly).
So we went ahead and created an instant messaging app using GCM. The server-side is powered by Google App Engine. You can read the complete tutorial here. Create an Instant Messaging app using Google Cloud Messaging (GCM)
So it is possible to use GCM for Instant Messaging on Android, to answer your question. However, reliability of GCM compared to XMPP for IM is another topic.
Just my two cents:
I think you should not use GCM for delivering IM. You should have a dedicated server where your Android IM apps will connect to, using a persistent socket connection. Your server will know who is online or not and therefore can present an 'online list' to all the apps.
GCM can come into play, while users are offline or not running your app. A GCM message can be sent to them to indicate 'XXXX wants to chat'. They can then launch your app and automatically connects to a chat session.
Google has said that the delivery of GCM messages are not guaranteed. This reason alone is not a good idea to rely on them for Instant Messaging.
Try pub nub - it is pretty easy to implement - send Im from one mobile to another - simply fire up the web page (see link) in the browser , and chat between pc, mobile - and works - with 'no server'. Code is for javascript but they also have java. Chat app using jquerymobile web app framework
You might want to check out how a server sends a message to the GCM Service. It is possible to use php on Server side so it should be possible to adapt that to a POST request directly out of your application. However, to communicate you need the registered ids of the devices you want to send data to. Means you will need something to store and get them. Best solution would be your own (web) server which stores all ids and handles the Message sending.
I need to add the ability to send push notifications out to users who have our app installed (yet to go to market).
I guess I will need to install a phonegap plugin that will look for updates on our server (or could be triggered from our server) but I'm struggling to find a good approach.
I have seen this:
https://github.com/saileshmittal/phonegap-system-notification-plugin/tree/master/android-statusbar-notificaion
It allows phonegap to send a notification, but I don't know how I could send a remote message to the script to trigger a message.
C2DM is deprecated and GCM ( Google Cloud Messaging) is used to implement your push notifications for Android App.
In Android the technology of push notifications is called C2DM. Here is a tutorial for this.