ID de región
El REGION_ID
es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r
se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.
Pub/Sub ofrece mensajes asíncronos y fiables, de muchos a muchos, entre aplicaciones. Las aplicaciones de los editores pueden enviar mensajes a un tema y otras aplicaciones se pueden suscribir a ese tema para recibir los mensajes.
En este documento se describe cómo usar las bibliotecas de cliente de Cloud para enviar y recibir mensajes de Pub/Sub en una aplicación de App Engine. Puedes usar la aplicación de ejemplo de esta guía con cualquier versión compatible de Java. Para ello, especifica la versión del tiempo de ejecución y el sistema operativo en el archivoapp.yaml
.
Requisitos previos
- Sigue las instrucciones para crear una aplicación para el tiempo de ejecución seleccionado, configurar tu entorno y tu proyecto, y entender cómo se estructuran las aplicaciones de App Engine.
- Anota y guarda el ID de tu proyecto, ya que lo necesitarás para ejecutar la aplicación de ejemplo que se describe en este documento.
- Crea una cuenta de servicio y una clave de cuenta de servicio para usarla con tu aplicación.
-
Enable the Google Cloud Pub/Sub API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Clonar la aplicación de muestra
Copia las aplicaciones de ejemplo en tu máquina local y ve al directorio pubsub
:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
cd golang-samples/appengine_flexible/pubsub
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/flexible/java-11/pubsub/
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/appengine/pubsub
PHP
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
cd php-docs-samples/pubsub
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/flexible/pubsub
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/flexible/pubsub/
.NET
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
cd dotnet-docs-samples/appengine/flexible/Pubsub/Pubsub.Sample
Crear un tema y una suscripción
Crea un tema y una suscripción, lo que incluye especificar el endpoint al que el servidor de Pub/Sub debe enviar las solicitudes:
Go
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sustituye YOUR_TOKEN
por un token aleatorio secreto. El endpoint de envío usa este valor para verificar las solicitudes.
Para usar Pub/Sub con autenticación, crea otra suscripción:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sustituye YOUR-SERVICE-ACCOUNT-EMAIL
por el correo de tu cuenta de servicio.
Java
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sustituye YOUR_TOKEN
por un token aleatorio secreto. El endpoint de envío usa este valor para verificar las solicitudes.
Para usar Pub/Sub con autenticación, crea otra suscripción:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sustituye YOUR-SERVICE-ACCOUNT-EMAIL
por el correo de tu cuenta de servicio.
Node.js
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sustituye YOUR_TOKEN
por un token aleatorio secreto. El endpoint de envío usa este valor para verificar las solicitudes.
Para usar Pub/Sub con autenticación, crea otra suscripción:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sustituye YOUR-SERVICE-ACCOUNT-EMAIL
por el correo de tu cuenta de servicio.
PHP
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sustituye YOUR_TOKEN
por un token aleatorio secreto. El endpoint de envío usa este valor para verificar las solicitudes.
Para usar Pub/Sub con autenticación, crea otra suscripción:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sustituye YOUR-SERVICE-ACCOUNT-EMAIL
por el correo de tu cuenta de servicio.
Python
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sustituye YOUR_TOKEN
por un token aleatorio secreto. El endpoint de envío usa este valor para verificar las solicitudes.
Para usar Pub/Sub con autenticación, crea otra suscripción:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sustituye YOUR-SERVICE-ACCOUNT-EMAIL
por el correo de tu cuenta de servicio.
Ruby
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sustituye YOUR_TOKEN
por un token aleatorio secreto. El endpoint de envío usa este valor para verificar las solicitudes.
Para usar Pub/Sub con autenticación, crea otra suscripción:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sustituye YOUR-SERVICE-ACCOUNT-EMAIL
por el correo de tu cuenta de servicio.
.NET
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sustituye YOUR_TOKEN
por un token aleatorio secreto. El endpoint de envío usa este valor para verificar las solicitudes.
Para usar Pub/Sub con autenticación, crea otra suscripción:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sustituye YOUR-SERVICE-ACCOUNT-EMAIL
por el correo de tu cuenta de servicio.
Configurar variables de entorno
Go
Edita el archivo app.yaml
para definir las variables de entorno de tu tema y tu token de verificación:
Java
Edita el archivo app.yaml
para definir las variables de entorno de tu tema y tu token de verificación:
Node.js
Edita el archivo app.yaml
para definir las variables de entorno de tu tema y tu token de verificación:
PHP
Edita el archivo index.php
para definir las variables de entorno de tu tema y tu suscripción:
Python
Edita el archivo app.yaml
para definir las variables de entorno de tu ID de proyecto, tema y token de verificación:
Ruby
Edita el archivo app.yaml
para definir las variables de entorno de tu ID de proyecto, tema y token de verificación:
.NET
Edita el archivo app.yaml
para definir las variables de entorno de tu tema y tu token de verificación:
Revisión de código
La aplicación de ejemplo usa la biblioteca de cliente de Pub/Sub.
Go
La aplicación de ejemplo usa las variables de entorno que has definido en el archivo app.yaml
(PUBSUB_TOPIC
y PUBSUB_VERIFICATION_TOKEN
) para la configuración.
Los mensajes recibidos por esta instancia se almacenan en un segmento:
messages []string
La función pushHandler
recibe los mensajes insertados, verifica el token y añade el mensaje al segmento messages
:
La función publishHandler
publica mensajes nuevos en el tema.
Java
La aplicación de ejemplo usa los valores que has definido en el archivo app.yaml
para configurar las variables de entorno. El controlador de solicitudes push usa estos valores para confirmar que la solicitud procede de Pub/Sub y de una fuente de confianza:
String pubsubVerificationToken = System.getenv("PUBSUB_VERIFICATION_TOKEN");
La aplicación de ejemplo mantiene una instancia de base de datos de Cloud Datastore para almacenar mensajes.
El servlet PubSubPush
recibe los mensajes insertados y los añade a la instancia de la base de datos messageRepository
:
versión del 17/11
versión 8
El servlet PubSubPublish
interactúa con la aplicación web de App Engine para publicar mensajes nuevos y mostrar los mensajes recibidos:
Node.js
La aplicación de ejemplo usa los valores que has definido en el archivo app.yaml
para configurar las variables de entorno. El controlador de solicitudes push usa estos valores para confirmar que la solicitud procede de Pub/Sub y de una fuente de confianza:
// The following environment variables are set by the `app.yaml` file when
// running on App Engine, but will need to be manually set when running locally.
var PUBSUB_VERIFICATION_TOKEN = process.env.PUBSUB_VERIFICATION_TOKEN;
var pubsub = gcloud.pubsub({
projectId: process.env.GOOGLE_CLOUD_PROJECT
});
var topic = pubsub.topic(process.env.PUBSUB_TOPIC);
La aplicación de ejemplo mantiene una lista global para almacenar los mensajes recibidos por esta instancia:
// List of all messages received by this instance
var messages = [];
Este método recibe mensajes push y los añade a la messages
lista global:
Este método interactúa con la aplicación web de App Engine para publicar mensajes nuevos y mostrar los recibidos:
PHP
La aplicación de ejemplo usa los valores que definas en el archivo app.yaml
para configurar las variables de entorno. El controlador de solicitudes push usa estos valores para confirmar que la solicitud procede de Pub/Sub y de una fuente de confianza:
La aplicación de ejemplo mantiene una lista global para almacenar los mensajes recibidos por esta instancia:
$messages = [];
El método pull
obtiene mensajes del tema que has creado y los añade a la lista de mensajes:
El método publish
publica mensajes nuevos en el tema:
Python
La aplicación de ejemplo usa los valores que definas en el archivo app.yaml
para configurar las variables de entorno. El controlador de solicitudes push usa estos valores para confirmar que la solicitud procede de Pub/Sub y de una fuente de confianza:
app.config['PUBSUB_VERIFICATION_TOKEN'] = \
os.environ['PUBSUB_VERIFICATION_TOKEN']
app.config['PUBSUB_TOPIC'] = os.environ['PUBSUB_TOPIC']
La aplicación de ejemplo mantiene una lista global para almacenar los mensajes recibidos por esta instancia:
MESSAGES = []
El método pubsub_push()
recibe mensajes push y los añade a la lista global MESSAGES
:
El método index()
interactúa con la aplicación web de App Engine para publicar mensajes nuevos y mostrar los recibidos:
Ruby
La aplicación de ejemplo usa los valores que definas en el archivo app.yaml
para configurar las variables de entorno. El controlador de solicitudes push usa estos valores para confirmar que la solicitud procede de Pub/Sub y de una fuente de confianza:
La aplicación de ejemplo mantiene una lista global para almacenar los mensajes recibidos por esta instancia:
Este método recibe mensajes push y los añade a la messages
lista global:
Este método interactúa con la aplicación web de App Engine para publicar mensajes nuevos y mostrar los recibidos:
.NET
Ejecutar la muestra de forma local
Cuando se ejecuta de forma local, puedes usar la CLI de Google Cloud para proporcionar autenticación y usar las APIs de Google Cloud. Si has configurado tu entorno tal como se describe en Requisitos previos, ya habrás ejecutado el comando gcloud init
, que proporciona esta autenticación.
Go
Define las variables de entorno antes de iniciar la aplicación:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-token]
export PUBSUB_TOPIC=[your-topic]
go run pubsub.go
Java
mvn clean package
Define las variables de entorno antes de iniciar la aplicación:
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
mvn jetty:run
Node.js
Define las variables de entorno antes de iniciar la aplicación:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
npm install
npm start
PHP
Instala las dependencias con Composer:
composer install
A continuación, define las variables de entorno antes de iniciar la aplicación:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
php -S localhost:8080
Python
Instala las dependencias, preferiblemente en un entorno virtual.
Mac OS / Linux
- Crea un entorno de Python aislado:
python3 -m venv env
source env/bin/activate
- Si no estás en el directorio que contiene el código de ejemplo, ve al directorio que contiene el código de ejemplo
hello_world
. A continuación, instala las dependencias:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Windows
Usa PowerShell para ejecutar tus paquetes de Python.
- Busca tu instalación de PowerShell.
- Haz clic con el botón derecho en el acceso directo a PowerShell y ejecútalo como administrador.
- Crea un
entorno de Python aislado.
python -m venv env
.\env\Scripts\activate
- Ve al directorio de tu proyecto e instala las dependencias. Si no estás en el directorio que contiene el código de ejemplo, ve al directorio que contiene el
hello_world
código de ejemplo. A continuación, instala las dependencias:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
A continuación, define las variables de entorno antes de iniciar la aplicación:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
python main.py
Ruby
Instala las dependencias:
bundle install
A continuación, define las variables de entorno antes de iniciar la aplicación:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
bundle exec ruby app.rb -p 8080
.NET
Ejecuta los siguientes comandos desde el directorio raíz de tu aplicación:
dotnet restore
dotnet run
En tu navegador web, introduce http://localhost:5000/. Para salir del servidor web, pulsa Ctrl+C en la ventana de la terminal.
Simular notificaciones push
La aplicación puede enviar mensajes de forma local, pero no puede recibir mensajes push de forma local. Sin embargo, puedes simular un mensaje push haciendo una solicitud HTTP al endpoint de notificaciones push local. El ejemplo incluye el archivo
sample_message.json
.
Go
Puedes usar curl
o un cliente httpie
para enviar una solicitud HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
O
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Respuesta:
HTTP/1.1 200 OK
Date: Tue, 13 Nov 2018 16:04:18 GMT
Content-Length: 0
Una vez que se haya completado la solicitud, puedes actualizar localhost:8080
y ver el mensaje en la lista de mensajes recibidos.
Java
Puedes usar curl
o un cliente httpie
para enviar una solicitud HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
O
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Respuesta:
HTTP/1.1 200 OK
Date: Wed, 26 Apr 2017 00:03:28 GMT
Content-Length: 0
Server: Jetty(9.3.8.v20160314)
Una vez que se haya completado la solicitud, puedes actualizar localhost:8080
y ver el mensaje en la lista de mensajes recibidos.
Node.js
Puedes usar curl
o un cliente httpie
para enviar una solicitud HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
O
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Respuesta:
HTTP/1.1 200 OK
Connection: keep-alive
Date: Mon, 31 Aug 2015 22:19:50 GMT
Transfer-Encoding: chunked
X-Powered-By: Express
Una vez que se haya completado la solicitud, puedes actualizar localhost:8080
y ver el mensaje en la lista de mensajes recibidos.
PHP
Puedes usar curl
o un cliente httpie
para enviar una solicitud HTTP POST
:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
O
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Una vez que se haya completado la solicitud, puedes actualizar localhost:8080
y ver el mensaje en la lista de mensajes recibidos.
Python
Puedes usar curl
o un cliente httpie
para enviar una solicitud HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/pubsub/push?token=[your-token]"
O
http POST ":8080/pubsub/push?token=[your-token]" < sample_message.json
Respuesta:
HTTP/1.0 200 OK
Content-Length: 2
Content-Type: text/html; charset=utf-8
Date: Mon, 10 Aug 2015 17:52:03 GMT
Server: Werkzeug/0.10.4 Python/2.7.10
OK
Una vez que se haya completado la solicitud, puedes actualizar localhost:8080
y ver el mensaje en la lista de mensajes recibidos.
Ruby
Puedes usar curl
o un cliente httpie
para enviar una solicitud HTTP POST
:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
O
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Respuesta:
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 13
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.3.1 (Ruby/2.3.0/2015-12-25)
Date: Wed, 20 Apr 2016 20:56:23 GMT
Connection: Keep-Alive
Hello, World!
Una vez que se haya completado la solicitud, puedes actualizar localhost:8080
y ver el mensaje en la lista de mensajes recibidos.
.NET
Para enviar una solicitud HTTP POST
, sigue estos pasos:
Get-Content -Raw .\sample_message.json | Invoke-WebRequest -Uri
http://localhost:5000/Push?token=your-secret-token -Method POST -ContentType
'text/json' -OutFile out.txt
Una vez que se haya completado la solicitud, puedes actualizar localhost:5000
y ver el mensaje en la lista de mensajes recibidos.
Ejecutar en App Engine
Para desplegar la aplicación de demostración en App Engine con la herramienta de línea de comandos gcloud
, sigue estos pasos:
Go
Ejecuta el siguiente comando desde el directorio en el que se encuentra el archivo app.yaml
:
gcloud app deploy
Java
Para desplegar tu aplicación con Maven, ejecuta el siguiente comando:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Sustituye PROJECT_ID por el ID de tu Google Cloud proyecto. Si tu archivo pom.xml
ya especifica tu ID de proyecto, no es necesario que incluyas la propiedad -Dapp.deploy.projectId
en el comando que ejecutes.
Node.js
Ejecuta el siguiente comando desde el directorio en el que se encuentra el archivo app.yaml
:
gcloud app deploy
PHP
Ejecuta el siguiente comando desde el directorio en el que se encuentra el archivo app.yaml
:
gcloud app deploy
Python
Ejecuta el siguiente comando desde el directorio en el que se encuentra el archivo app.yaml
:
gcloud app deploy
Ruby
Ejecuta el siguiente comando desde el directorio en el que se encuentra el archivo app.yaml
:
gcloud app deploy app.yaml
.NET
Ejecuta el siguiente comando desde el directorio en el que se encuentra el archivo app.yaml
:
gcloud app deploy
Ahora puedes acceder a la aplicación en
https://PROJECT_ID.REGION_ID.r.appspot.com
.
Puedes usar el formulario para enviar mensajes, pero no hay ninguna garantía de qué instancia de tu aplicación recibirá la notificación. Puedes enviar varios mensajes y actualizar la página para ver el mensaje recibido.