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
- 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.
- Execute
npm install azure-sb
na janela de comandos. - Pode executar manualmente o
ls
comando oudir
para verificar se foi criada umanode_modules
pasta. - 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:
- No painel de navegação esquerdo, clique em Procurar.
- 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.
- Selecione Definições.
- Clique em Políticas de Acesso. Verá as cadeias de ligação de acesso completo e partilhado.
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 emnotificationHubService.gcm
-
iOS – utilize o
ApnsService
objeto , que é acessível emnotificationHubService.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 TargetName
NotificationClass
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.
- Veja a Referência do MSDN para Os Hubs de Notificação do Azure.
- Visite o repositório do SDK do Azure para Node no GitHub para obter mais exemplos e detalhes de implementação.