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

  1. Gebruik een opdrachtregelinterface zoals PowerShell (Windows), Terminal (Mac) of Bash (Linux) en navigeer naar de map waarin u uw lege toepassing hebt gemaakt.
  2. Voer uit npm install azure-sb in het opdrachtvenster.
  3. U kunt de ls opdracht of dir handmatig uitvoeren om te controleren of er een node_modules map is gemaakt.
  4. 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:

  1. Klik in het linkernavigatiedeelvenster op Bladeren.
  2. 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.
  3. Selecteer Instellingen.
  4. Klik op Toegangsbeleid. U ziet verbindingsreeksen voor zowel gedeelde als volledige toegang.

Azure Portal - Notification Hubs

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 op notificationHubService.gcm
  • iOS : gebruik het ApnsService object, dat toegankelijk is op notificationHubService.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 TargetNameNotificationClass 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.