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

Overview

Importante

Per completare l'esercitazione, è necessario disporre di un account Azure attivo. Se non si dispone di un account, è possibile creare un account di valutazione gratuita in pochi minuti. Per informazioni dettagliate, vedere la pagina relativa alla 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
  • Windows Phone
  • Piattaforma UWP (Universal Windows Platform)

Per ulteriori informazioni sugli hub di notifica, vedere la sezione Passaggi successivi .

Informazioni su 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 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.

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. Digitare 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. 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

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

var azure = require('azure');

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 l'importazione del modulo azure:

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

Il valore connectionstring della connessione può essere recuperato 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, vedere l' esercitazione introduttiva per Windows Store .
  3. Selezionare Impostazioni.
  4. Fare clic su Criteri di accesso. Verranno visualizzate la stringhe di connessione di accesso completo e condiviso.

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.

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

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 verrà 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 di payload, vedere la sezione Payload del documento relativo all' implementazione del server GCM .

Nel codice seguente viene usata l'istanza GcmService esposta dall'oggetto 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 verrà inviata a tutti i client.
  • Payload : il payload JSON o stringa del messaggio.
  • Callback : la funzione di richiamata.

Per altre informazioni sul formato di payload, vedere la sezione relativa al payload di notifica nella guida alla programmazione di notifiche push e locali .

Nel codice seguente viene usata l'istanza ApnsService esposta dall'oggetto 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 verrà 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 server).

Nel codice di esempio seguente viene usata l'istanza MpnsService esposta dall'oggetto 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 verrà 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 WnsService esposta dall'oggetto 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. 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à.