Invio di notifiche push con Hub di notifica di Azure e Node.js

Panoramica

Importante

Per completare l'esercitazione, è necessario disporre di un account Azure attivo. Se non si ha un account, creare un account di valutazione gratuita in pochi minuti tramite la versione di valutazione gratuita di Azure.

Questa guida illustra come inviare notifiche push con Hub di notifica di Azure direttamente da un'applicazione Node.js.

Gli scenari presentati includono l'invio di notifiche push ad applicazioni nelle piattaforme seguenti:

  • Android
  • iOS
  • Piattaforma UWP (Universal Windows Platform)
  • Windows Phone

Hub di notifica

Hub di notifica di Azure offre un'infrastruttura scalabile, multipiattaforma e di semplice utilizzo per l'invio di notifiche push ai dispositivi mobili. Per informazioni dettagliate sull'infrastruttura del servizio, vedere la pagina Hub di notifica di Azure .

Creazione di un'applicazione Node.js

Il primo passaggio in questa esercitazione consiste nel creare una nuova applicazione Node.js vuota. Per istruzioni sulla creazione di un'applicazione Node.js, vedere Creazione e distribuzione di un'applicazione Node.js in un sito Web di Azure e il servizio cloud Node.js mediante Windows PowerShell oppure il sito Web con WebMatrix.

Configurare l'applicazione per l'uso di Hub di notifica

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.

Usare Node Package Manager (NPM) per ottenere il pacchetto

  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.
  2. Eseguire npm install azure-sb nella finestra di comando.
  3. È possibile eseguire manualmente il comando ls o dir per verificare che sia stata creata una cartella node_modules.
  4. All'interno di tale cartella trovare il pacchetto azure , che contiene le librerie necessarie per accedere a Hub di notifica.

Nota

Altre informazioni sull'installazione di NPM sono disponibili nel blog NPMufficiale.

Importare il modulo

Usando un editor di testo, aggiungere quanto segue nella parte superiore del file server.js dell'applicazione:

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

Configurare una connessione all'Hub di notifica di Azure

L'oggetto NotificationHubService consente di lavorare con gli hub di notifica. Il codice seguente consente di creare un oggetto NotificationHubService per l'hub di notifica denominato hubname. Aggiungerlo nella parte superiore del file server.js dopo l'istruzione per importare il modulo Azure:

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

Ottenere il valore connectionstring della connessione dal portale di Azure seguendo questa procedura:

  1. Nel riquadro di spostamento a sinistra fare clic su Sfoglia.
  2. Selezionare Hub di notificae quindi individuare l'hub da utilizzare per l'esempio. Per informazioni sulla creazione di un nuovo hub di notifica, è possibile fare riferimento all'esercitazione di Windows Store Introduzione.
  3. Selezionare Impostazioni.
  4. Fare clic su Criteri di accesso. Vengono visualizzate la stringhe di connessione di accesso completo e condiviso.

portale di Azure - Hub di notifica

Nota

È anche possibile recuperare la stringa di connessione tramite il Get-AzureSbNamespace cmdlet in Azure PowerShell o il azure sb namespace show comando nell'interfaccia della riga di comando classica di Azure.

Architettura generale

L'oggetto NotificationHubService espone le istanze seguenti dell'oggetto per l'invio di notifiche push a specifici dispositivi e specifiche applicazioni:

  • Android: usare l'oggetto GcmService, disponibile in notificationHubService.gcm
  • iOS: usare l'oggetto ApnsService, accessibile in notificationHubService.apns
  • Windows Phone: usare l'oggetto MpnsService, disponibile in notificationHubService.mpns
  • Piattaforma UWP (Universal Windows Platform): usare l'oggetto WnsService, disponibile in notificationHubService.wns

Nota

Microsoft Push Notification Service (MPNS) è stato deprecato e non è più supportato.

Procedura: Inviare notifiche push ad applicazioni Android

L'oggetto GcmService specifica un metodo send che è possibile usare per inviare notifiche push alle applicazioni Android. Di seguito sono illustrati i parametri accettati dal metodo send:

  • Tags : l'identificatore tag. Se non viene specificato alcun tag, la notifica viene inviata a tutti i client.
  • Payload : il payload JSON o la stringa non elaborata del messaggio.
  • Callback : la funzione di richiamata.

Per altre informazioni sul formato del payload, vedere la documentazione relativa al payload.

Nel codice seguente viene usata l'istanza di GcmService esposta da NotificationHubService per inviare una notifica push a tutti i client registrati.

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

Procedura: Inviare notifiche push ad applicazioni iOS

Come per le applicazioni Android descritte sopra, l'oggetto ApnsService specifica un metodo send che è possibile usare per inviare notifiche push alle applicazioni iOS. Di seguito sono illustrati i parametri accettati dal metodo send:

  • Tags : l'identificatore tag. Se non viene specificato alcun tag, la notifica viene inviata a tutti i client.
  • Payload : il payload JSON o stringa del messaggio.
  • Callback : la funzione di richiamata.

Per altre informazioni sul formato del payload, vedere la sezione Contenuto delle notifiche della guida UserNotifications.

Nel codice seguente viene usata l'istanza di ApnsService esposta da NotificationHubService per inviare un messaggio di avviso a tutti i client:

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

Procedura: Inviare notifiche push ad applicazioni Windows Phone

L'oggetto MpnsService specifica un metodo send che è possibile usare per inviare notifiche push alle applicazioni Windows Phone. Di seguito sono illustrati i parametri accettati dal metodo send:

  • Tags : l'identificatore tag. Se non viene specificato alcun tag, la notifica viene inviata a tutti i client.
  • Payload : il payload XML del messaggio.
  • Targetname - toast per le notifiche di tipo avviso popup. token per le notifiche di tipo riquadro.
  • NotificationClass : la priorità della notifica. Per i valori validi, vedere la sezione relativa agli elementi dell'intestazione HTTP nel documento sul push di notifiche da un server .
  • Options : intestazioni delle richieste facoltative.
  • Callback : la funzione di richiamata.

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 un server).

Nel codice di esempio seguente viene usata l'istanza di MpnsService esposta da NotificationHubService per inviare una notifica push di tipo avviso popup:

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)

L'oggetto WnsService specifica un metodo send che è possibile usare per inviare notifiche push alle applicazioni della piattaforma UWP (Universal Windows Platform). Di seguito sono illustrati i parametri accettati dal metodo send:

  • Tags : l'identificatore tag. Se non viene specificato alcun tag, la notifica viene inviata a tutti i client registrati.
  • Payload : il payload XML del messaggio.
  • Type : il tipo di notifica.
  • Options : intestazioni delle richieste facoltative.
  • Callback : la funzione di richiamata.

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.

Nel codice seguente viene usata l'istanza di WnsService esposta da NotificationHubService per inviare una notifica push di tipo avviso popup a un'app UWP:

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 successivi

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. Dopo aver appreso le nozioni di base sull'uso di Hub di notifica con Node.js, seguire questi collegamenti per altre informazioni su come estendere ulteriormente queste funzionalità.