Partilhar via


Enviar notificações push com os Hubs de Notificação do Azure e Node.js

Descrição Geral

Importante

Para concluir este tutorial, tem de ter uma conta ativa do Azure. Se não tiver uma conta, crie uma conta de avaliação gratuita em apenas alguns minutos através da Avaliação Gratuita do Azure.

Este guia mostra-lhe como enviar notificações push com a ajuda dos Hubs de Notificação do Azure diretamente a partir de uma aplicaçãoNode.js .

Os cenários abrangidos incluem o envio de notificações push para aplicações nas seguintes plataformas:

  • Android
  • iOS
  • Plataforma Universal do Windows
  • Windows Phone

Hubs de Notificação

Os Hubs de Notificação do Azure fornecem uma infraestrutura dimensionável, multiplataformas e fácil de utilizar para enviar notificações push para dispositivos móveis. Para obter detalhes sobre a infraestrutura de serviço, veja a página Hubs de Notificação do Azure .

Criar uma Aplicação Node.js

O primeiro passo neste tutorial é criar uma nova aplicação em branco Node.js. Para obter instruções sobre como criar uma aplicação Node.js, veja Criar e implementar uma aplicação Node.js no Web Site do Azure, Node.js Serviço Cloud com Windows PowerShell ou Web Site com WebMatrix.

Configurar a aplicação para utilizar hubs de notificação

Para utilizar os Hubs de Notificação do Azure, tem de transferir e utilizar a Node.js pacote do Azure, que inclui um conjunto incorporado de bibliotecas auxiliares que comunicam com os serviços REST de notificação push.

Utilizar o Gestor de Pacotes de Nós (NPM) para obter o pacote

  1. Utilize uma interface de linha de comandos, como o PowerShell (Windows), Terminal (Mac) ou Bash (Linux) e navegue para a pasta onde criou a sua aplicação em branco.
  2. Execute npm install azure-sb na janela de comandos.
  3. Pode executar manualmente o ls comando ou dir para verificar se foi criada uma node_modules pasta.
  4. Dentro dessa pasta, localize o pacote do azure , que contém as bibliotecas de que precisa para aceder ao Hub de Notificação.

Nota

Pode saber mais sobre como instalar o NPM no blogue oficial do NPM.

Importar o módulo

Com um editor de texto, adicione o seguinte à parte superior do server.js ficheiro da aplicação:

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

Configurar uma ligação do Hub de Notificação do Azure

O NotificationHubService objeto permite-lhe trabalhar com hubs de notificação. O código seguinte cria um NotificationHubService objeto para o hub de notificação com o nome hubname. Adicione-o perto da parte superior do server.js ficheiro, após a instrução para importar o módulo do azure:

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

Obtenha o valor de ligação connectionstring do portal do Azure ao executar os seguintes passos:

  1. No painel de navegação esquerdo, clique em Procurar.
  2. Selecione Notification Hubs e, em seguida, localize o hub que pretende utilizar para o exemplo. Pode consultar o tutorial da Loja Windows Introdução se precisar de ajuda para criar um novo Hub de Notificação.
  3. Selecione Definições.
  4. Clique em Políticas de Acesso. Verá as cadeias de ligação de acesso completo e partilhado.

portal do Azure - Notification Hubs

Nota

Também pode obter a cadeia de ligação através do Get-AzureSbNamespace cmdlet no Azure PowerShell ou do azure sb namespace show comando na CLI clássica do Azure.

Arquitetura geral

O NotificationHubService objeto expõe as seguintes instâncias de objeto para enviar notificações push para dispositivos e aplicações específicos:

  • Android - utilize o GcmService objeto, que está disponível em notificationHubService.gcm
  • iOS – utilize o ApnsService objeto , que é acessível em notificationHubService.apns
  • Windows Phone - utilize o MpnsService objeto, que está disponível emnotificationHubService.mpns
  • Plataforma Universal do Windows - utilize o WnsService objeto, que está disponível emnotificationHubService.wns

Nota

O Serviço de Notificações Push da Microsoft (MPNS) foi preterido e já não é suportado.

Como: Enviar notificações push para aplicações Android

O GcmService objeto fornece um send método que pode ser utilizado para enviar notificações push para aplicações Android. O send método aceita os seguintes parâmetros:

  • Etiquetas – o identificador da etiqueta. Se não for fornecida nenhuma etiqueta, a notificação é enviada a todos os clientes.
  • Payload - payload de cadeia de carateres JSON ou raw da mensagem.
  • Chamada de retorno – a função de chamada de retorno.

Para obter mais informações sobre o formato de payload, veja a documentação payload.

O código seguinte utiliza a GcmService instância exposta pelo NotificationHubService para enviar uma notificação push a todos os clientes registados.

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

Como: Enviar notificações push para aplicações iOS

Tal como acontece com as aplicações Android descritas acima, o ApnsService objeto fornece um send método que pode ser utilizado para enviar notificações push para aplicações iOS. O send método aceita os seguintes parâmetros:

  • Etiquetas – o identificador da etiqueta. Se não for fornecida nenhuma etiqueta, a notificação é enviada a todos os clientes.
  • Payload - payload de cadeia ou JSON da mensagem.
  • Chamada de retorno – a função de chamada de retorno.

Para obter mais informações sobre o formato de payload, veja a secção Conteúdo de Notificação do guia UserNotifications.

O código seguinte utiliza a ApnsService instância exposta pelo NotificationHubService para enviar uma mensagem de alerta a todos os clientes:

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

Como: Enviar notificações push para aplicações Windows Phone

O MpnsService objeto fornece um send método que pode ser utilizado para enviar notificações push para Windows Phone aplicações. O send método aceita os seguintes parâmetros:

  • Etiquetas – o identificador da etiqueta. Se não for fornecida nenhuma etiqueta, a notificação é enviada a todos os clientes.
  • Payload – o payload XML da mensagem.
  • TargetName - toast para notificações de alerta. token para notificações de mosaico.
  • NotificationClass - A prioridade da notificação. Veja a secção Elementos de Cabeçalho HTTP das notificações push de um documento de servidor para obter valores válidos.
  • Opções – cabeçalhos de pedido opcionais.
  • Chamada de retorno – a função de chamada de retorno.

Para obter uma lista de opções válidas TargetNameNotificationClass e de cabeçalho, consulte as Notificações push a partir de uma página do servidor.

O seguinte código de exemplo utiliza a MpnsService instância exposta pelo NotificationHubService para enviar uma notificação push de alerta:

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

Como: Enviar notificações push para aplicações Plataforma Universal do Windows (UWP)

O WnsService objeto fornece um send método que pode ser utilizado para enviar notificações push para Plataforma Universal do Windows aplicações. O send método aceita os seguintes parâmetros:

  • Etiquetas – o identificador da etiqueta. Se não for fornecida nenhuma etiqueta, a notificação é enviada para todos os clientes registados.
  • Payload - o payload da mensagem XML.
  • Escreva - o tipo de notificação.
  • Opções – cabeçalhos de pedido opcionais.
  • Chamada de retorno – a função de chamada de retorno.

Para obter uma lista de tipos válidos e cabeçalhos de pedido, veja Pedido de notificações push e cabeçalhos de resposta.

O código seguinte utiliza a WnsService instância exposta pelo NotificationHubService para enviar uma notificação push de alerta para uma aplicação 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
  }
});

Passos Seguintes

Os fragmentos de exemplo acima permitem-lhe criar facilmente uma infraestrutura de serviço para fornecer notificações push a uma grande variedade de dispositivos. Agora que aprendeu as noções básicas da utilização dos Hubs de Notificação com Node.js, siga estas ligações para saber mais sobre como pode expandir ainda mais estas capacidades.