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
- 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.
- Ejecute
npm install azure-sb
en la ventana de comandos. - Puede ejecutar manualmente el comando
ls
odir
para comprobar si se ha creado la carpetanode_modules
. - 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:
- En el panel de navegación izquierdo, haga clic en Examinar.
- 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.
- Seleccione Configuración.
- Haga clic en Directivas de acceso. Verá las cadenas de conexión de acceso, tanto las compartidas como las de acceso completo.
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 ennotificationHubService.gcm
-
iOS: use el objeto
ApnsService
, que está accesible ennotificationHubService.apns
-
Windows Phone: use el objeto
MpnsService
, que está disponible ennotificationHubService.mpns
-
Plataforma universal de Windows: use el objeto
WnsService
, que está disponible ennotificationHubService.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.
- Consulte la referencia de MSDN para Azure Notification Hubs.
- Visite el repositorio SDK de Azure para Node en GitHub para ver más ejemplos y detalles de implementación.