Mensaje ascendente a la aplicación del servidor

He enviado con éxito datos desde la página del servidor php al cliente de Android con JAXL.

He leído atentamente la guía del sitio web oficial de Google Cloud Message. Para Upstream solo hay estos documentos:

public void onClick(final View view) {
    if (view == findViewById(R.id.send)) {
        new AsyncTask() {
            @Override
            protected String doInBackground(Void... params) {
                String msg = "";
                try {
                    Bundle data = new Bundle();
                    data.putString("my_message", "Hello World");
                    data.putString("my_action","SAY_HELLO");
                    String id = Integer.toString(msgId.incrementAndGet());
                    gcm.send(SENDER_ID + "@gcm.googleapis.com", id, data);
                    msg = "Sent message";
                } catch (IOException ex) {
                    msg = "Error :" + ex.getMessage();
                }
                return msg;
            }

            @Override
            protected void onPostExecute(String msg) {
                mDisplay.append(msg + "\n");
            }
        }.execute(null, null, null);
    } else if (view == findViewById(R.id.clear)) {
        mDisplay.setText("");
    }
}

Di esto:

Reciba mensajes XMPP en el servidor de aplicaciones

When GCM receives an upstream messaging call from a client app, it generates the necessary XMPP stanza for sending the upstream message.

GCM agrega la categoría y los campos, y luego envía una estrofa como la siguiente al servidor de aplicaciones:

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "category":"com.example.yourapp", // to know which app sent it
      "data":
      {
          "hello":"world",
      },
      "message_id":"m-123",
      "from":"REGID"
  }
  </gcm>
</message>

Pero ahora tengo algunas preguntas, debido a los documentos limitados para aguas arriba.

1-) Android envía datos JSON, con la identificación del remitente para el flujo ascendente ... Pero cuando me registro en la API, no me han preguntado sobre el servidor de aplicaciones. La identificación del remitente identifica la aplicación de mi cuenta de gmail con el paquete. No es un servidor de aplicaciones. Entonces, ¿dónde envían los datos de CMM que vienen por el cliente? Cómo GCM conoce mi servidor de aplicaciones.

2-) Tengo un presupuesto limitado, mi servidor es un servidor web de cuenta compartida. Así que tengo que usar php ... Pero he leído en el documento, "Su servidor de aplicaciones debe ser una conexión persistente" no se conecta y desconecta regularmente ... ¿Puedo usar el servidor de aplicaciones como php? ¿Qué GCM conecta Php scrpit que elimina datos y responde al cliente de Android?

Respuestas a la pregunta(3)

Su respuesta a la pregunta