Envoi de notifications Push avec Azure Notification Hubs et Node.js
Vue d’ensemble
Important
Pour suivre ce didacticiel, vous avez besoin d'un compte Azure actif. Si vous n’avez pas de compte, vous pouvez créer un compte d’essai gratuit en quelques minutes par le biais de l’essai gratuit Azure.
Ce guide montre comment envoyer des notifications Push à l’aide d’Azure Notification Hubs directement à partir d’une application Node.js.
Les scénarios traités incluent l’envoi de notifications Push à des applications sur les plateformes suivantes :
- Android
- iOS
- Plateforme Windows universelle
- Windows Phone
Notification Hubs
Azure Notification Hubs offre une infrastructure multiplateforme extensible et conviviale pour l’envoi de notifications Push à des appareils mobiles. Pour plus d’informations sur l’infrastructure de service, voir la page Azure Notification Hubs .
Création d’une application Node.js
La première étape de ce didacticiel consiste à créer une application Node.js vide. Pour obtenir des instructions sur la création d’une application Node.js, consultez Créer et déployer une application Node.js sur un site web Azure, Service cloud Node.js avec Windows PowerShell ou Site web avec WebMatrix.
Configuration de l’application pour utiliser Notification Hubs
Pour utiliser Azure Notification Hubs, vous devez télécharger et utiliser le package AzureNode.js, qui inclut un ensemble intégré de bibliothèques d’aide qui communiquent avec les services REST de notification Push.
Utilisation de Node Package Manager (NPM) pour obtenir le package
- Utilisez une interface de ligne de commande telle que PowerShell (Windows), Terminal (Mac) ou Bash (Linux) pour accéder au dossier dans lequel vous avez créé votre application vide.
- Exécutez
npm install azure-sb
dans la fenêtre de commande. - Vous pouvez exécuter manuellement la commande
ls
oudir
pour vérifier qu’un dossiernode_modules
a été créé. - Dans ce dossier, recherchez le package azure qui contient les bibliothèques nécessaires pour accéder à Notification Hubs.
Notes
Pour plus d’informations sur l’installation de NPM, consultez le Blog NPMofficiel.
Importation du module
À l’aide d’un éditeur de texte, ajoutez la commande suivante au début du fichier server.js
de l’application :
var azure = require('azure-sb');
Configuration d’une connexion Azure Notification Hubs
L’objet NotificationHubService
vous permet d’utiliser les hubs de notification. Le code suivant crée un objet NotificationHubService
pour le hub de notification nommé hubname
. Ajoutez-le vers le début du fichier server.js
, après l’instruction relative à l’importation du module azure :
var notificationHubService = azure.createNotificationHubService('hubname','connectionstring');
Obtenez la valeur de connexion connectionstring
à partir du portail Azure en effectuant les étapes suivantes :
- Dans le volet de navigation de gauche, cliquez sur Parcourir.
- Sélectionnez Notification Hubs, puis recherchez le hub à utiliser pour l’exemple. Si vous avez besoin d’aide pour créer un hub de notification, vous pouvez consulter le didacticiel de prise en main de Windows Store.
- Sélectionnez Paramètres.
- Cliquez sur Stratégies d’accès. Vous pouvez voir les chaînes de connexion d’accès total et partagé.
Notes
Vous pouvez aussi récupérer la chaîne de connexion via l'applet de commande Get-AzureSbNamespace
dans Azure PowerShell ou la commande azure sb namespace show
dans l’interface CLI Azure Classic.
Architecture générale
L’objet NotificationHubService
expose les instances d’objet suivantes pour l’envoi de notifications Push à des appareils et applications spécifiques :
-
Android : utilisez l’objet
GcmService
, disponible au niveau denotificationHubService.gcm
-
iOS : utilisez l’objet
ApnsService
, disponible au niveau denotificationHubService.apns
-
Windows Phone : utilisez l’objet
MpnsService
, disponible au niveau denotificationHubService.mpns
-
Plateforme Windows universelle : utilisez l’objet
WnsService
, disponible au niveau denotificationHubService.wns
Notes
Le Service de notifications push Microsoft (MPNS) est obsolète et n’est plus pris en charge.
Procédure : Envoyer des notifications Push à des applications Android
L’objet GcmService
fournit une méthode send
que vous pouvez utiliser pour envoyer des notifications Push à des applications Android. La méthode send
accepte les paramètres suivants :
- Tags : identifiant de balise. Si aucune balise n’est fournie, la notification est envoyée à tous les clients.
- Payload : charge utile JSON ou de chaîne brute du message.
- Callback : fonction de rappel.
Pour plus d’informations sur le format de charge utile, voir la documentation relative à la charge utile.
Le code suivant utilise l’instance GcmService
exposée par NotificationHubService
pour envoyer une notification Push à tous les clients inscrits.
var payload = {
data: {
message: 'Hello!'
}
};
notificationHubService.gcm.send(null, payload, function(error){
if(!error){
//notification sent
}
});
Procédure : Envoyer des notifications Push à des applications iOS
Comme pour les applications Android décrites ci-dessus, l’objet ApnsService
fournit une méthode send
permettant d’envoyer des notifications Push à des applications iOS. La méthode send
accepte les paramètres suivants :
- Tags : identifiant de balise. Si aucune balise n’est fournie, la notification est envoyée à tous les clients.
- Payload : charge utile JSON ou de chaîne du message.
- Callback : fonction de rappel.
Pour plus d’informations sur le format de charge utile, consultez la section Contenu de la notification dans le Guide UserNotifications.
Le code suivant utilise l’instance ApnsService
exposée par NotificationHubService
pour envoyer un message d’alerte à tous les clients :
var payload={
alert: 'Hello!'
};
notificationHubService.apns.send(null, payload, function(error){
if(!error){
// notification sent
}
});
Procédure : Envoyer des notifications Push à des applications Windows Phone
L’objet MpnsService
fournit une méthode send
permettant d’envoyer des notifications Push à des applications Windows Phone. La méthode send
accepte les paramètres suivants :
- Tags : identifiant de balise. Si aucune balise n’est fournie, la notification est envoyée à tous les clients.
- Payload : charge utile XML du message.
-
TargetName -
toast
pour les notifications toast.token
pour les notifications par vignette. - NotificationClass : priorité de la notification. Pour les valeurs valides, consultez la section Éléments d’en-tête HTTP de l’article Notifications Push d’un serveur .
- Options : en-têtes de demande facultatifs.
- Callback : fonction de rappel.
Pour la liste des options TargetName
, NotificationClass
et d’en-tête valides, consultez la page Envoyer des notifications Push à partir d’un serveur.
L’exemple de code suivant utilise l’instance MpnsService
exposée par NotificationHubService
pour envoyer une notification Push toast :
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
}
});
Procédure : Envoyer des notifications Push à des applications de la plateforme Windows universelle (UWP)
L’objet WnsService
fournit une méthode send
permettant d’envoyer des notifications Push à des applications de la plateforme Windows universelle. La méthode send
accepte les paramètres suivants :
- Tags : identifiant de balise. Si aucune balise n’est fournie, la notification est envoyée à tous les clients inscrits.
- Payload : charge utile XML du message.
- Type : type de notification.
- Options : en-têtes de demande facultatifs.
- Callback : fonction de rappel.
Pour obtenir la liste des types et en-têtes de demande valides, consultez En-têtes de demande et de réponse des services de notifications Push.
Le code suivant utilise l’instance WnsService
exposée par NotificationHubService
pour envoyer une notification Push toast à une application UWP :
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
}
});
Étapes suivantes
Les exemples d’extrait de code ci-dessus permettent de créer facilement une infrastructure de service pour remettre des notifications Push à un vaste éventail d’appareils. À présent que vous avez appris les bases de l’utilisation de Notification Hubs avec Node.js, suivez les liens suivants pour en savoir plus sur l’extension de ces fonctionnalités.
- Consultez la référence MSDN pour Azure Notification Hubs.
- Pour d’autres exemples et des détails d’implémentation, visitez le dépôt SDK Azure pour Node sur GitHub.