I\'ve read the documentation https://developer.android.com/google/gcm/index.html
and the only difference I can see is that a CCS (XMPP) based server allows bi-direct
From Google docs :
You can continue to use the HTTP request mechanism to send messages to GCM servers, side-by-side with CCS which uses XMPP. Some of the benefits of CCS include:
The asynchronous nature of XMPP allows you to send more messages with fewer resources.
Communication is bidirectional—not only can your server send messages to the device, but the device can send messages back to your server.
The device can send messages back using the same connection used for receiving, thereby improving battery life.