Google Cloud Messaging - CCS (XMPP) vs HTTP server
unfortunately google cloud platform will disable the XMPP API after a year https://cloud.google.com/appengine/docs/deprecations/xmpp
I'd choose XMPP to save devices battery cause its one of the big concern nowadays!
CCS (XMPP) is asynchronous, which means it should be faster than HTTP. It also uses the existing GCM connection on the device to send messages from your app to your server (which saves battery, since you don't have to open your own connection to your server).
On the other hand, HTTP is much simpler to code, so unless you need the bi-directional functionality or you need to send messages in a very high speed, I'd stick with HTTP.
You can broadcast a message to 1000 devices at a time with a single http call to gcm. For broadcasting http is better than CCS.