I use GCM to warn the client about the connection. If you simply rely on GCM to deliver payloads, you cannot easily track message delivery.
For example, I use a very basic form of flow control in my application, so I prefer to use it only for the synchronization service and allow my client / server to communicate directly.
It is also not extensible, although you could put the xml in the body of the message and parse it.
I'm not sure what a delivery guarantee is, but I will also check it on the Google side, and if you use it to deliver multiple messages, you need to make sure that you include the collapse_key function in your client, because GCM will combine your messages into one if there is a delay in sending, if you use a large amount.
Another thing I'm not sure about in real time is GCM, so I'm not sure how cool this is for a real chat application.
I would consider these things before using GCM to deliver the payload.
James w
source share