Invio di notifiche push con Hub di notifica di Azure e Node.jsSending push notifications with Azure Notification Hubs and Node.js

OverviewOverview

Importante

Per completare l'esercitazione, è necessario disporre di un account Azure attivo.To complete this tutorial, you must have an active Azure account. Se non si dispone di un account, è possibile creare un account di valutazione gratuita in pochi minuti.If you don't have an account, you can create a free trial account in just a couple of minutes. Per informazioni dettagliate, vedere la pagina relativa alla versione di valutazione gratuita di Azure.For details, see Azure Free Trial.

Questa guida illustra come inviare notifiche push con Hub di notifica di Azure direttamente da un'applicazione Node.js.This guide will show you how to send push notifications with the help of Azure Notification Hubs directly from a Node.js application.

Gli scenari presentati includono l'invio di notifiche push ad applicazioni nelle piattaforme seguenti:The scenarios covered include sending push notifications to applications on the following platforms:

  • AndroidAndroid
  • iOSiOS
  • Windows PhoneWindows Phone
  • Piattaforma UWP (Universal Windows Platform)Universal Windows Platform

Per ulteriori informazioni sugli hub di notifica, vedere la sezione Passaggi successivi .For more information on notification hubs, see the Next Steps section.

Informazioni su Hub di notificaWhat are Notification Hubs?

Hub di notifica di Azure offre un'infrastruttura scalabile, multipiattaforma e di semplice utilizzo per l'invio di notifiche push ai dispositivi mobili.Azure Notification Hubs provide an easy-to-use, multi-platform, scalable infrastructure for sending push notifications to mobile devices. Per informazioni dettagliate sull'infrastruttura del servizio, vedere la pagina Hub di notifica di Azure .For details on the service infrastructure, see the Azure Notification Hubs page.

Creazione di un'applicazione Node.jsCreate a Node.js Application

Il primo passaggio in questa esercitazione consiste nel creare una nuova applicazione Node.js vuota.The first step in this tutorial is creating a new blank Node.js application. Per istruzioni sulla creazione di un'applicazione Node.js, vedere Creare e distribuire un'applicazione Node.js in un sito Web di Azure, Servizio cloud Node.js con Windows PowerShell o Sito Web con WebMatrix.For instructions on creating a Node.js application, see Create and deploy a Node.js application to Azure Web Site, Node.js Cloud Service using Windows PowerShell, or [Web Site with WebMatrix].

Configurare l'applicazione per l'uso di Hub di notificaConfigure Your Application to Use Notification Hubs

Per usare Hub di notifica di Azure, è necessario scaricare e usare il pacchetto Azuredi Node.js, che comprende un set integrato di librerie di supporto che comunicano con i servizi REST di notifica push.To use Azure Notification Hubs, you need to download and use the Node.js azure package, which includes a built-in set of helper libraries that communicate with the push notification REST services.

Usare Node Package Manager (NPM) per ottenere il pacchettoUse Node Package Manager (NPM) to obtain the package

  1. Usare un'interfaccia della riga di comando come PowerShell (Windows), Terminal (Mac) o Bash (Linux) e passare alla cartella in cui è stata creata l'applicazione vuota.Use a command-line interface such as PowerShell (Windows), Terminal (Mac), or Bash (Linux) and navigate to the folder where you created your blank application.
  2. Digitare npm install azure-sb nella finestra di comando.Type npm install azure-sb in the command window.
  3. È possibile eseguire manualmente il comando ls o dir per verificare che sia stata creata una cartella node_modules.You can manually run the ls or dir command to verify that a node_modules folder was created. All'interno di tale cartella trovare il pacchetto azure , che contiene le librerie necessarie per accedere a Hub di notifica.Inside that folder, find the azure package, which contains the libraries you need to access the Notification Hub.

Nota

Altre informazioni sull'installazione di NPM sono disponibili nel blog NPMufficiale.You can learn more about installing NPM on the official NPM blog.

Importare il moduloImport the module

Utilizzando un editor di testo, aggiungere quanto segue nella parte superiore del file server.js dell'applicazione:Using a text editor, add the following to the top of the server.js file of the application:

var azure = require('azure');

Configurare una connessione all'Hub di notifica di AzureSetup an Azure Notification Hub connection

L'oggetto NotificationHubService consente di lavorare con gli hub di notifica.The NotificationHubService object lets you work with notification hubs. Il codice seguente consente di creare un oggetto NotificationHubService per l'hub di notifica denominato hubname.The following code creates a NotificationHubService object for the nofication hub named hubname. Aggiungerlo nella parte superiore del file server.js dopo l'istruzione per l'importazione del modulo azure:Add it near the top of the server.js file, after the statement to import the azure module:

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

Il valore connectionstring della connessione può essere recuperato dal portale di Azure seguendo questa procedura:The connection connectionstring value can be obtained from the [Azure Portal] by performing the following steps:

  1. Nel riquadro di spostamento a sinistra fare clic su Sfoglia.In the left navigation pane, click Browse.
  2. Selezionare Hub di notificae quindi individuare l'hub da utilizzare per l'esempio.Select Notification Hubs, and then find the hub you wish to use for the sample. Per informazioni sulla creazione di un nuovo hub di notifica, vedere l' esercitazione introduttiva per Windows Store .You can refer to the Windows Store Getting Started tutorial if you need help creating a new Notification Hub.
  3. Selezionare Impostazioni.Select Settings.
  4. Fare clic su Criteri di accesso.Click on Access Policies. Verranno visualizzate la stringhe di connessione di accesso completo e condiviso.You will see both shared and full access connection strings.

Portale di Azure - Hub di notifica

Nota

La stringa di connessione può essere recuperata anche usando il cmdlet Get-AzureSbNamespace specificato da Azure PowerShell o il comando azure sb namespace show con l'interfaccia della riga di comando di Azure.You can also retrieve the connection string using the Get-AzureSbNamespace cmdlet provided by Azure PowerShell or the azure sb namespace show command with the Azure Command-Line Interface (Azure CLI).

Architettura generaleGeneral architecture

L'oggetto NotificationHubService espone le istanze seguenti dell'oggetto per l'invio di notifiche push a specifici dispositivi e specifiche applicazioni:The NotificationHubService object exposes the following object instances for sending push notifications to specific devices and applications:

  • Android: usare l'oggetto GcmService, disponibile in notificationHubService.gcmAndroid - use the GcmService object, which is available at notificationHubService.gcm
  • iOS: usare l'oggetto ApnsService, accessibile in notificationHubService.apnsiOS - use the ApnsService object, which is accessible at notificationHubService.apns
  • Windows Phone: usare l'oggetto MpnsService, disponibile in notificationHubService.mpnsWindows Phone - use the MpnsService object, which is available at notificationHubService.mpns
  • Piattaforma UWP (Universal Windows Platform): usare l'oggetto WnsService disponibile in notificationHubService.wnsUniversal Windows Platform - use the WnsService object, which is available at notificationHubService.wns

Procedura: Inviare notifiche push ad applicazioni AndroidHow to: Send push notifications to Android applications

L’oggetto GcmService specifica un metodo send che è possibile usare per inviare notifiche push alle applicazioni Android.The GcmService object provides a send method that can be used to send push notifications to Android applications. Di seguito sono illustrati i parametri accettati dal metodo send .The send method accepts the following parameters:

  • Tags : l'identificatore tag.Tags - the tag identifier. Se non viene specificato alcun tag, la notifica verrà inviata a tutti i client.If no tag is provided, the notification will be sent to all clients.
  • Payload : il payload JSON o la stringa non elaborata del messaggio.Payload - the message's JSON or raw string payload.
  • Callback : la funzione di richiamata.Callback - the callback function.

Per altre informazioni sul formato di payload, vedere la sezione Payload del documento relativo all' implementazione del server GCM .For more information on the payload format, see the Payload section of the Implementing GCM Server document.

Nel codice seguente viene usata l'istanza GcmService esposta dall'oggetto NotificationHubService per inviare una notifica push a tutti i client registrati.The following code uses the GcmService instance exposed by the NotificationHubService to send a push notification to all registered clients.

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

Procedura: Inviare notifiche push ad applicazioni iOSHow to: Send push notifications to iOS applications

Come per le applicazioni Android descritte sopra, l'oggetto ApnsService specifica un metodo send che è possibile usare per inviare notifiche push alle applicazioni iOS.Same as with Android applications described above, the ApnsService object provides a send method that can be used to send push notifications to iOS applications. Di seguito sono illustrati i parametri accettati dal metodo send .The send method accepts the following parameters:

  • Tags : l'identificatore tag.Tags - the tag identifier. Se non viene specificato alcun tag, la notifica verrà inviata a tutti i client.If no tag is provided, the notification will be sent to all clients.
  • Payload : il payload JSON o stringa del messaggio.Payload - the message's JSON or string payload.
  • Callback : la funzione di richiamata.Callback - the callback function.

Per altre informazioni sul formato di payload, vedere la sezione relativa al payload di notifica nella guida alla programmazione di notifiche push e locali .For more information the payload format, see The Notification Payload section of the Local and Push Notification Programming Guide document.

Nel codice seguente viene usata l'istanza ApnsService esposta dall'oggetto NotificationHubService per inviare un messaggio di avviso a tutti i client:The following code uses the ApnsService instance exposed by the NotificationHubService to send an alert message to all clients:

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

Procedura: Inviare notifiche push ad applicazioni Windows PhoneHow to: Send push notifications to Windows Phone applications

L'oggetto MpnsService specifica un metodo send che è possibile usare per inviare notifiche push alle applicazioni Windows Phone.The MpnsService object provides a send method that can be used to send push notifications to Windows Phone applications. Di seguito sono illustrati i parametri accettati dal metodo send .The send method accepts the following parameters:

  • Tags : l'identificatore tag.Tags - the tag identifier. Se non viene specificato alcun tag, la notifica verrà inviata a tutti i client.If no tag is provided, the notification will be sent to all clients.
  • Payload : il payload XML del messaggio.Payload - the message's XML payload.
  • TargetName - toast per le notifiche di tipo avviso popup.TargetName - toast for toast notifications. token per le notifiche di tipo riquadro.token for tile notifications.
  • NotificationClass : la priorità della notifica.NotificationClass - The priority of the notification. Per i valori validi, vedere la sezione relativa agli elementi dell'intestazione HTTP nel documento sul push di notifiche da un server .See the HTTP Header Elements section of the Push notifications from a server document for valid values.
  • Options : intestazioni delle richieste facoltative.Options - optional request headers.
  • Callback : la funzione di richiamata.Callback - the callback function.

Per un elenco dei valori validi per TargetName, NotificationClass e le opzioni di intestazione, vedere la pagina Pushing Notifications from a Server (Notifiche push da server).For a list of valid TargetName, NotificationClass and header options, check out the Push notifications from a server page.

Nel codice di esempio seguente viene usata l'istanza MpnsService esposta dall'oggetto NotificationHubService per inviare una notifica push di tipo avviso popup:The following sample code uses the MpnsService instance exposed by the NotificationHubService to send a toast push notification:

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

Procedura: Inviare notifiche push alle applicazioni della piattaforma UWP (Universal Windows Platform)How to: Send push notifications to Universal Windows Platform (UWP) applications

L'oggetto WnsService specifica un metodo send che è possibile usare per inviare notifiche push alle applicazioni della piattaforma UWP (Universal Windows Platform).The WnsService object provides a send method that can be used to send push notifications to Universal Windows Platform applications. Di seguito sono illustrati i parametri accettati dal metodo send .The send method accepts the following parameters:

  • Tags : l'identificatore tag.Tags - the tag identifier. Se non viene specificato alcun tag, la notifica verrà inviata a tutti i client registrati.If no tag is provided, the notification will be sent to all registered clients.
  • Payload : il payload XML del messaggio.Payload - the XML message payload.
  • Type : il tipo di notifica.Type - the notification type.
  • Options : intestazioni delle richieste facoltative.Options - optional request headers.
  • Callback : la funzione di richiamata.Callback - the callback function.

Per un elenco dei valori validi per i tipi e le intestazioni delle richieste, vedere Intestazioni delle richieste e delle risposte per il servizio di notifica push.For a list of valid types and request headers, see Push notification service request and response headers.

Nel codice seguente viene usata l'istanza WnsService esposta dall'oggetto NotificationHubService per inviare una notifica push di tipo avviso popup a un'app UWP:The following code uses the WnsService instance exposed by the NotificationHubService to send a toast push notification to a 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
  }
});

Passaggi successiviNext Steps

I frammenti di codice di esempio riportati sopra consentono di creare facilmente l'infrastruttura del servizio per recapitare notifiche push a un'ampia gamma di dispositivi.The sample snippets above allow you to easily build service infrastructure to deliver push notifications to a wide variety of devices. A questo punto, dopo aver appreso le nozioni di base dell'uso di Hub di notifica con Node.js, usare i collegamenti seguenti per scoprire come estendere ulteriormente queste funzionalità.Now that you've learned the basics of using Notification Hubs with node.js, follow these links to learn more about how you can extend these capabilities further.