Pushmeldingen verzenden met Azure Notification Hubs en Node.js
Overzicht
Belangrijk
U hebt een actief Azure-account nodig om deze zelfstudie te voltooien. Als u geen account hebt, maakt u in slechts een paar minuten een gratis proefaccount via de gratis proefversie van Azure.
Deze handleiding laat zien hoe u pushmeldingen rechtstreeks vanuit een Node.js-toepassing kunt verzenden met behulp van Azure Notification Hubs.
De scenario's die worden behandeld, omvatten het verzenden van pushmeldingen naar toepassingen op de volgende platforms:
- Android
- iOS
- Universeel Windows-platform
- Windows Phone
Notification Hubs
Azure Notification Hubs bieden een gebruiksvriendelijke, schaalbare infrastructuur met meerdere platforms voor het verzenden van pushmeldingen naar mobiele apparaten. Zie de pagina Azure Notification Hubs voor meer informatie over de service-infrastructuur.
Een Node.js-toepassing maken
De eerste stap in deze zelfstudie bestaat uit het maken van een nieuwe lege Node.js toepassing. Zie Een Node.js-toepassing maken en implementeren op een Azure-website, Node.js cloudservice met behulp van Windows PowerShell of Website met WebMatrix voor instructies over het maken van een Node.js-toepassing.
Uw toepassing configureren voor het gebruik van Notification Hubs
Als u Azure Notification Hubs wilt gebruiken, moet u het Node.js Azure-pakket downloaden en gebruiken, dat een ingebouwde set helperbibliotheken bevat die communiceren met de REST-services voor pushmeldingen.
Node Package Manager (NPM) gebruiken om het pakket te verkrijgen
- Gebruik een opdrachtregelinterface zoals PowerShell (Windows), Terminal (Mac) of Bash (Linux) en navigeer naar de map waarin u uw lege toepassing hebt gemaakt.
- Voer uit
npm install azure-sb
in het opdrachtvenster. - U kunt de
ls
opdracht ofdir
handmatig uitvoeren om te controleren of er eennode_modules
map is gemaakt. - Zoek in die map het azure-pakket , dat de bibliotheken bevat die u nodig hebt voor toegang tot de Notification Hub.
Notitie
Meer informatie over het installeren van NPM vindt u in de officiƫle NPM-blog.
De module importeren
Voeg met een teksteditor het volgende toe aan het begin van het server.js
bestand van de toepassing:
var azure = require('azure-sb');
Een Azure Notification Hub-verbinding instellen
Met NotificationHubService
het object kunt u werken met Notification Hubs. Met de volgende code maakt u een NotificationHubService
-object voor de Notification Hub met de naam hubname
. Voeg deze toe aan de bovenkant van het server.js
bestand, na de instructie om de Azure-module te importeren:
var notificationHubService = azure.createNotificationHubService('hubname','connectionstring');
Haal de verbindingswaarde connectionstring
op uit de Azure Portal door de volgende stappen uit te voeren:
- Klik in het linkernavigatiedeelvenster op Bladeren.
- Selecteer Notification Hubs en zoek vervolgens de hub die u wilt gebruiken voor het voorbeeld. U kunt de zelfstudie windows store Aan de slag raadplegen als u hulp nodig hebt bij het maken van een nieuwe Notification Hub.
- Selecteer Instellingen.
- Klik op Toegangsbeleid. U ziet verbindingsreeksen voor zowel gedeelde als volledige toegang.
Notitie
U kunt de connection string ook ophalen via de Get-AzureSbNamespace
cmdlet in Azure PowerShell of de azure sb namespace show
opdracht in de klassieke Azure CLI.
Algemene architectuur
Met NotificationHubService
het object worden de volgende objectexemplaren weergegeven voor het verzenden van pushmeldingen naar specifieke apparaten en toepassingen:
-
Android : gebruik het
GcmService
object, dat beschikbaar is opnotificationHubService.gcm
-
iOS : gebruik het
ApnsService
object, dat toegankelijk is opnotificationHubService.apns
-
Windows Phone: gebruik het
MpnsService
object, dat beschikbaar is opnotificationHubService.mpns
-
Universeel Windows-platform: gebruik het
WnsService
object, dat beschikbaar is opnotificationHubService.wns
Notitie
Microsoft Push Notification Service (MPNS) is afgeschaft en wordt niet meer ondersteund.
Procedure: pushmeldingen verzenden naar Android-toepassingen
Het GcmService
object biedt een send
methode die kan worden gebruikt om pushmeldingen te verzenden naar Android-toepassingen. De send
methode accepteert de volgende parameters:
- Tags : de tag-id. Als er geen tag is opgegeven, wordt de melding verzonden naar alle clients.
- Payload : de JSON- of onbewerkte nettolading van de tekenreeks van het bericht.
- Callback : de callback-functie.
Zie de documentatie voor payloads voor meer informatie over de nettoladingindeling.
De volgende code gebruikt het GcmService
exemplaar dat door de NotificationHubService
wordt weergegeven om een pushmelding te verzenden naar alle geregistreerde clients.
var payload = {
data: {
message: 'Hello!'
}
};
notificationHubService.gcm.send(null, payload, function(error){
if(!error){
//notification sent
}
});
Procedure: Pushmeldingen verzenden naar iOS-toepassingen
Net als bij Android-toepassingen die hierboven worden beschreven, biedt het ApnsService
object een send
methode die kan worden gebruikt om pushmeldingen te verzenden naar iOS-toepassingen. De send
methode accepteert de volgende parameters:
- Tags : de tag-id. Als er geen tag is opgegeven, wordt de melding verzonden naar alle clients.
- Payload : de JSON- of tekenreekspayload van het bericht.
- Callback : de callback-functie.
Zie de sectie Meldingsinhoud van de handleiding UserNotifications voor meer informatie over de indeling van de nettolading.
De volgende code gebruikt het ApnsService
exemplaar dat door de NotificationHubService
wordt weergegeven om een waarschuwingsbericht naar alle clients te verzenden:
var payload={
alert: 'Hello!'
};
notificationHubService.apns.send(null, payload, function(error){
if(!error){
// notification sent
}
});
Procedure: pushmeldingen verzenden naar Windows Phone-toepassingen
Het MpnsService
object biedt een send
methode die kan worden gebruikt om pushmeldingen te verzenden naar Windows Phone toepassingen. De send
methode accepteert de volgende parameters:
- Tags : de tag-id. Als er geen tag is opgegeven, wordt de melding verzonden naar alle clients.
- Payload : de XML-nettolading van het bericht.
-
TargetName -
toast
voor pop-upmeldingen.token
voor tegelmeldingen. - NotificationClass : de prioriteit van de melding. Zie de sectie HTTP-headerelementen van het document Pushmeldingen van een server voor geldige waarden.
- Opties : optionele aanvraagheaders.
- Callback : de callback-functie.
Bekijk de pagina Pushmeldingen van een server voor een lijst met geldige TargetName
NotificationClass
opties voor kopteksten.
In de volgende voorbeeldcode wordt het MpnsService
exemplaar gebruikt dat door de NotificationHubService
wordt weergegeven om een pop-uppushmelding te verzenden:
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
}
});
Procedure: pushmeldingen verzenden naar uwP-toepassingen (Universeel Windows-platform)
Het WnsService
object biedt een send
methode die kan worden gebruikt om pushmeldingen te verzenden naar Universeel Windows-platform toepassingen. De send
methode accepteert de volgende parameters:
- Tags : de tag-id. Als er geen tag wordt opgegeven, wordt de melding verzonden naar alle geregistreerde clients.
- Payload : de nettolading van het XML-bericht.
- Type : het meldingstype.
- Opties : optionele aanvraagheaders.
- Callback : de callback-functie.
Zie Aanvraag- en antwoordheaders pushmeldingsservice voor een lijst met geldige typen en aanvraagheaders.
De volgende code gebruikt het WnsService
exemplaar dat door de NotificationHubService
wordt weergegeven om een pop-uppushmelding te verzenden naar een UWP-app:
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
}
});
Volgende stappen
Met de bovenstaande voorbeeldfragmenten kunt u eenvoudig een service-infrastructuur bouwen om pushmeldingen te leveren aan een groot aantal verschillende apparaten. Nu u de basisbeginselen van het gebruik van Notification Hubs met Node.js hebt geleerd, volgt u deze koppelingen voor meer informatie over hoe u deze mogelijkheden verder kunt uitbreiden.
- Zie de MSDN-verwijzing voor Azure Notification Hubs.
- Ga naar de Azure SDK voor Node-opslagplaats op GitHub voor meer voorbeelden en implementatiedetails.