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
- Använd ett kommandoradsgränssnitt som PowerShell (Windows), Terminal (Mac) eller Bash (Linux) och navigera till mappen där du skapade ditt tomma program.
- Kör
npm install azure-sb
i kommandofönstret. - Du kan köra
ls
kommandot ellerdir
manuellt för att kontrollera att ennode_modules
mapp har skapats. - 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:
- Klicka på Bläddra i det vänstra navigeringsfönstret.
- 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.
- Välj inställningar.
- Klicka på Åtkomstprinciper. Du ser anslutningssträngar för både delad och fullständig åtkomst.
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 TargetName
alternativ 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.
- Se MSDN-referensen för Azure Notification Hubs.
- Besök Azure SDK för Node-lagringsplatsen på GitHub för fler exempel och implementeringsinformation.