Envío de notificaciones push seguras con Azure Notification Hubs y Node.js

Información general

Importante

Para completar este tutorial, deberá tener una cuenta de Azure activa. En caso de no tener ninguna, cree una cuenta de evaluación gratuita en tan solo unos minutos con la evaluación gratuita de Azure.

En esta guía se explica cómo enviar notificaciones push con la ayuda de Azure Notification Hubs directamente desde una aplicación Node.js.

Entre los escenarios descritos se incluye el envío de notificaciones push a aplicaciones en las siguientes plataformas:

  • Android
  • iOS
  • Plataforma universal de Windows
  • Windows Phone

Notification Hubs

Azure Notification Hubs proporciona una infraestructura multiplataforma escalable de fácil uso para enviar notificaciones push a los dispositivos móviles. Para más información sobre la infraestructura del servicio, consulte la página de Azure Notification Hubs.

Creación de una aplicación Node.js

El primer paso en este tutorial es crear una nueva aplicación Node.js vacía. Si desea instrucciones sobre cómo crear una aplicación Node.js, consulte Creación de una aplicación web de Node.js en Azure, Servicio en la nube de Node.js (con Windows PowerShell) o Sitio web con WebMatrix.

Configuración de la aplicación para usar Notification Hubs

Para usar Azure Notification Hubs tendrá que descargar y usar el paquete de AzureNode.js, que incluye un conjunto de bibliotecas auxiliares que se comunican con los servicios REST de notificación push.

Uso del Administrador de paquetes para Node (NPM) para obtener el paquete

  1. Use una interfaz de línea de comandos como PowerShell (Windows), Terminal (Mac) o Bash (Linux) y navegue a la carpeta donde creó la aplicación vacía.
  2. Ejecute npm install azure-sb en la ventana de comandos.
  3. Puede ejecutar manualmente el comando ls o dir para comprobar si se ha creado la carpeta node_modules.
  4. Dentro de dicha carpeta, encontrará el paquete de Azure , que contiene las bibliotecas necesarias para el acceso al Centro de notificaciones.

Nota

Para más información sobre la instalación de NPM, consulte el blog de NPMoficial.

Importación del módulo

Con un editor de texto, agregue el código siguiente en la parte superior del archivo server.js de la aplicación:

var azure = require('azure-sb');

Configuración de una conexión de Centro de notificaciones de Azure

El objeto NotificationHubService le permite trabajar con centros de notificaciones. El código siguiente crea un objeto NotificationHubService para el centro de notificaciones denominado hubname. Agréguelo cerca de la parte superior del archivo server.js, tras la instrucción para importar el módulo azure:

var notificationHubService = azure.createNotificationHubService('hubname','connectionstring');

Obtenga el valor de conexión connectionstring de Azure Portal mediante los siguientes pasos:

  1. En el panel de navegación izquierdo, haga clic en Examinar.
  2. Seleccione Notification Hubsy, a continuación, elija el centro que desea usar para el ejemplo. Puede consultar el tutorial Introducción a Microsoft Store si necesita ayuda para crear un nuevo Centro de notificaciones.
  3. Seleccione Configuración.
  4. Haga clic en Directivas de acceso. Verá las cadenas de conexión de acceso, tanto las compartidas como las de acceso completo.

Azure Portal: Notification Hubs

Nota:

También puede recuperar la cadena de conexión mediante el cmdlet Get-AzureSbNamespace de Azure PowerShell o el comando azure sb namespace show en la CLI clásica de Azure.

Arquitectura general

El objeto NotificationHubService expone las siguientes instancias de objeto para enviar notificaciones push a dispositivos y aplicaciones específicos:

  • Android: use el objeto GcmService, que está disponible en notificationHubService.gcm
  • iOS: use el objeto ApnsService, que está accesible en notificationHubService.apns
  • Windows Phone: use el objeto MpnsService, que está disponible en notificationHubService.mpns
  • Plataforma universal de Windows: use el objeto WnsService, que está disponible en notificationHubService.wns

Nota

El servicio de notificaciones push de Microsoft (MPNS) está en desuso y ya no se admite.

Procedimientos: Envío de notificaciones push a aplicaciones de Android

El objeto GcmService proporciona un método send que se puede usar para enviar notificaciones push a las aplicaciones de Android. El método send acepta los siguientes parámetros:

  • Tags : identificador de etiqueta. Si no se proporciona ninguna etiqueta, la notificación se envía a todos los clientes.
  • Payload : el código JSON del mensaje o la carga útil de la cadena sin formato.
  • Callback : función de devolución de llamada.

Para obtener más información sobre el formato de carga, consulte la documentación de Payload.

El código siguiente usa la instancia GcmService expuesta por NotificationHubService para enviar una notificación push a todos los clientes registrados.

var payload = {
  data: {
    message: 'Hello!'
  }
};
notificationHubService.gcm.send(null, payload, function(error){
  if(!error){
    //notification sent
  }
});

Procedimientos: Envío de notificaciones push a aplicaciones de iOS

Igual que en el caso de las aplicaciones de Android descrito anteriormente, el objeto ApnsService proporciona un método send que se puede usar para enviar notificaciones de inserción a las aplicaciones iOS. El método send acepta los siguientes parámetros:

  • Tags : identificador de etiqueta. Si no se proporciona ninguna etiqueta, la notificación se envía a todos los clientes.
  • Payload : el código JSON del mensaje o la carga útil de la cadena.
  • Callback : función de devolución de llamada.

Para más información sobre el formato de carga, consulte la sección sobre el contenido de la notificación de la guía de UserNotifications.

El código siguiente usa la instancia ApnsService expuesta por NotificationHubService para enviar un mensaje de alerta a todos los clientes:

var payload={
    alert: 'Hello!'
  };
notificationHubService.apns.send(null, payload, function(error){
  if(!error){
      // notification sent
  }
});

Procedimientos: Envío de notificaciones push a aplicaciones de Windows Phone

El objeto MpnsService proporciona un método send que se puede usar para enviar notificaciones de inserción a las aplicaciones de Windows Phone. El método send acepta los siguientes parámetros:

  • Tags : identificador de etiqueta. Si no se proporciona ninguna etiqueta, la notificación se envía a todos los clientes.
  • Payload : carga útil XML del mensaje.
  • TargetName - toast para notificaciones del sistema. token para notificaciones de icono.
  • NotificationClass : prioridad de la notificación. Consulte la sección sobre elementos de encabezados HTTP del documento Pushing Notifications from a Server (Windows Phone) (Inserción de notificaciones desde un servidor) para obtener los valores válidos.
  • Options : encabezados de solicitud opcionales.
  • Callback : función de devolución de llamada.

Para obtener una lista de valores TargetName, NotificationClass y opciones de encabezado que sean válidos, consulte la página Push notifications from a server (Notificaciones push desde un servidor).

En el ejemplo siguiente se usa la instancia MpnsService expuesta por NotificationHubService para enviar una notificación push del sistema:

var payload = '<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification"><wp:Toast><wp:Text1>string</wp:Text1><wp:Text2>string</wp:Text2></wp:Toast></wp:Notification>';
notificationHubService.mpns.send(null, payload, 'toast', 22, function(error){
  if(!error){
    //notification sent
  }
});

Procedimientos: Envío de notificaciones push a aplicaciones de la Plataforma universal de Windows (UWP)

El objeto WnsService proporciona un método send que se puede usar para enviar notificaciones de inserción a las aplicaciones de la Plataforma universal de Windows. El método send acepta los siguientes parámetros:

  • Tags : identificador de etiqueta. Si no se proporciona ninguna etiqueta, la notificación se envía a todos los clientes registrados.
  • Payload : carga útil del mensaje XML.
  • Type : tipo de notificación.
  • Options : encabezados de solicitud opcionales.
  • Callback : función de devolución de llamada.

Para obtener una lista de tipos y encabezados de solicitud válidos, consulte Encabezados de respuesta y solicitud del servicio de notificaciones de inserción (aplicaciones de Windows en tiempo de ejecución).

En el código siguiente se usa la instancia WnsService expuesta por NotificationHubService para enviar una notificación push a una aplicación de Plataforma universal de Windows:

var payload = '<toast><visual><binding template="ToastText01"><text id="1">Hello!</text></binding></visual></toast>';
notificationHubService.wns.send(null, payload , 'wns/toast', function(error){
  if(!error){
      // notification sent
  }
});

Pasos siguientes

Los fragmentos de código de los ejemplos anteriores le permiten crear fácilmente la infraestructura del servicio para entregar notificaciones push a una amplia variedad de dispositivos. Ahora que conoce los fundamentos del uso de Notification Hubs con Node.js, siga estos vínculos para obtener más información sobre cómo puede ampliar estas capacidades adicionales.