Skicka push-meddelanden med Azure Notification Hubs och Node.js

Översikt

Viktigt

Du måste ha ett aktivt Azure-konto för att slutföra den här kursen. Om du inte har något konto skapar du ett kostnadsfritt utvärderingskonto på bara några minuter via den kostnadsfria Azure-utvärderingsversionen.

Den här guiden visar hur du skickar push-meddelanden med hjälp av Azure Notification Hubs direkt från ett Node.js program.

De scenarier som omfattas är att skicka push-meddelanden till program på följande plattformar:

  • Android
  • iOS
  • Universell Windows-plattform
  • Windows Phone

Notification Hubs

Azure Notification Hubs tillhandahåller en lätthanterad, skalbar infrastruktur för flera plattformar för att skicka push-meddelanden till mobila enheter. Mer information om tjänstinfrastrukturen finns på sidan Azure Notification Hubs .

Skapa ett Node.js program

Det första steget i den här självstudien är att skapa ett nytt tomt Node.js program. Anvisningar om hur du skapar ett Node.js program finns i Skapa och distribuera ett Node.js-program till Azure-webbplatsen, Node.js Molntjänst med Windows PowerShell eller Webbplats med WebMatrix.

Konfigurera ditt program att använda Notification Hubs

Om du vill använda Azure Notification Hubs måste du ladda ned och använda Node.js Azure-paket, som innehåller en inbyggd uppsättning hjälpbibliotek som kommunicerar med REST-tjänsterna för push-meddelanden.

Använd Node Package Manager (NPM) för att hämta paketet

  1. Använd ett kommandoradsgränssnitt som PowerShell (Windows), Terminal (Mac) eller Bash (Linux) och navigera till mappen där du skapade ditt tomma program.
  2. Kör npm install azure-sb i kommandofönstret.
  3. Du kan köra ls kommandot eller dir manuellt för att kontrollera att en node_modules mapp har skapats.
  4. I den mappen letar du reda på azure-paketet , som innehåller de bibliotek som du behöver för att komma åt Notification Hub.

Anteckning

Du kan läsa mer om att installera NPM på den officiella NPM-bloggen.

Importera modulen

Med hjälp av en textredigerare lägger du till följande överst i server.js programmets fil:

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

Konfigurera en Azure Notification Hub-anslutning

Med NotificationHubService objektet kan du arbeta med meddelandehubbar. Följande kod skapar ett NotificationHubService objekt för meddelandehubben med namnet hubname. Lägg till den längst upp i server.js filen efter instruktionen för att importera azure-modulen:

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

Hämta anslutningsvärdet connectionstring från Azure Portal genom att utföra följande steg:

  1. Klicka på Bläddra i det vänstra navigeringsfönstret.
  2. Välj Notification Hubs och leta sedan upp den hubb som du vill använda för exemplet. Du kan läsa självstudien om Windows Store Komma igång om du behöver hjälp med att skapa en ny meddelandehubb.
  3. Välj inställningar.
  4. Klicka på Åtkomstprinciper. Du ser anslutningssträngar för både delad och fullständig åtkomst.

Azure Portal – Notification Hubs

Anteckning

Du kan också hämta anslutningssträngen via cmdleten Get-AzureSbNamespace i Azure PowerShell eller azure sb namespace show kommandot i det klassiska Azure CLI.

Allmän arkitektur

Objektet NotificationHubService exponerar följande objektinstanser för att skicka push-meddelanden till specifika enheter och program:

  • Android – använd objektet GcmService , som är tillgängligt på notificationHubService.gcm
  • iOS – använd objektet ApnsService , som är tillgängligt på notificationHubService.apns
  • Windows Phone – använd MpnsService objektet, som är tillgängligt pånotificationHubService.mpns
  • Universell Windows-plattform – använd WnsService objektet, som är tillgängligt pånotificationHubService.wns

Anteckning

Microsoft Push Notification Service (MPNS) har blivit inaktuell och stöds inte längre.

Anvisningar: Skicka push-meddelanden till Android-program

Objektet GcmService innehåller en send metod som kan användas för att skicka push-meddelanden till Android-program. Metoden send accepterar följande parametrar:

  • Taggar – taggidentifieraren. Om ingen tagg anges skickas meddelandet till alla klienter.
  • Payload – meddelandets JSON- eller råsträngsnyttolast.
  • Återanrop – återanropsfunktionen.

Mer information om nyttolastformatet finns i payload-dokumentationen.

Följande kod använder den GcmService instans som NotificationHubService exponeras av för att skicka ett push-meddelande till alla registrerade klienter.

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

Anvisningar: Skicka push-meddelanden till iOS-program

På samma sätt som med Android-program som beskrivs ovan ApnsService tillhandahåller objektet en send metod som kan användas för att skicka push-meddelanden till iOS-program. Metoden send accepterar följande parametrar:

  • Taggar – taggidentifieraren. Om ingen tagg anges skickas meddelandet till alla klienter.
  • Payload – meddelandets JSON- eller strängnyttolast.
  • Återanrop – återanropsfunktionen.

Mer information om nyttolastformatet finns i avsnittet Meddelandeinnehåll i användarmeddelandeguiden.

Följande kod använder den ApnsService instans som NotificationHubService exponeras av för att skicka ett aviseringsmeddelande till alla klienter:

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

Anvisningar: Skicka push-meddelanden till Windows Phone program

Objektet MpnsService innehåller en send metod som kan användas för att skicka push-meddelanden till Windows Phone program. Metoden send accepterar följande parametrar:

  • Taggar – taggidentifieraren. Om ingen tagg anges skickas meddelandet till alla klienter.
  • Payload – meddelandets XML-nyttolast.
  • TargetName - toast för popup-meddelanden. token för panelmeddelanden.
  • NotificationClass – prioriteten för meddelandet. Se avsnittet HTTP-rubrikelement i push-meddelanden från ett serverdokument för giltiga värden.
  • Alternativ – valfria begärandehuvuden.
  • Återanrop – återanropsfunktionen.

En lista över giltiga TargetNamealternativ för och NotificationClass sidhuvud finns på sidan Push-meddelanden från en server .

Följande exempelkod använder den MpnsService instans som NotificationHubService exponeras av för att skicka ett popup-push-meddelande:

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
  }
});

Anvisningar: Skicka push-meddelanden till Universell Windows-plattform-program (UWP)

Objektet WnsService innehåller en send metod som kan användas för att skicka push-meddelanden till Universell Windows-plattform program. Metoden send accepterar följande parametrar:

  • Taggar – taggidentifieraren. Om ingen tagg anges skickas meddelandet till alla registrerade klienter.
  • Payload – XML-meddelandenyttolasten.
  • Typ – meddelandetypen.
  • Alternativ – valfria begärandehuvuden.
  • Återanrop – återanropsfunktionen.

En lista över giltiga typer och begärandehuvuden finns i Push-meddelandetjänstens begäran och svarshuvuden.

Följande kod använder den WnsService instans som NotificationHubService exponeras av för att skicka ett popup-push-meddelande till en 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
  }
});

Nästa steg

Med exempelfragmenten ovan kan du enkelt skapa tjänstinfrastruktur för att leverera push-meddelanden till en mängd olika enheter. Nu när du har lärt dig grunderna i att använda Notification Hubs med Node.js följer du dessa länkar för att lära dig mer om hur du kan utöka dessa funktioner ytterligare.