O que são os Hubs de Notificação do Azure?
Os Hubs de Notificação do Azure fornecem um motor push fácil de utilizar e aumentado horizontalmente que lhe permite enviar notificações para qualquer plataforma (iOS, Android, Windows, etc.) a partir de qualquer back-end (cloud ou no local). Os Hubs de Notificação funcionam perfeitamente para cenários de utilização empresarial e de consumo. Eis alguns exemplos de cenários:
- Enviar notificações de notícias de última hora para milhões com baixa latência.
- Enviar cupões com base na localização a segmentos de utilizadores interessados.
- Enviar notificações relacionadas com eventos a utilizadores ou grupos para aplicações de multimédia/desporto/finanças/jogos.
- Enviar conteúdos promocionais às aplicações, para interação e comercialização junto dos clientes.
- Notifique os utilizadores de eventos empresariais, como novas mensagens e itens de trabalho.
- Enviar códigos para a autenticação multifator.
Nota
Para obter informações sobre os passos de descontinuação e migração do Firebase Cloud Messaging, veja Migração do Google Firebase Cloud Messaging.
O que são as notificações push?
As notificações push são uma forma de comunicação entre aplicações e utilizadores em que os utilizadores de aplicações móveis são notificados de determinadas informações pretendidas, normalmente numa caixa de diálogo ou pop-up num dispositivo móvel. Geralmente, os utilizadores optam por ver ou dispensar a mensagem; escolher o primeiro abre a aplicação móvel que comunicou a notificação. Algumas notificações são silenciosas - entregues em segundo plano para que a aplicação processe e decida o que fazer.
As notificações push são essenciais para as aplicações de consumidor, para aumentar a interação e a utilização da aplicação, e para as aplicações empresariais, para comunicar informações da empresa atualizadas. É a melhor comunicação entre aplicações e utilizadores porque é eficiente em termos energéticos para dispositivos móveis, flexível para os remetentes de notificações e disponível quando as aplicações correspondentes não estão ativas.
Nota
Os Hubs de Notificação do Azure não suportam oficialmente notificações push do Voice Over Internet Protocol (VOIP). no entanto, este artigo descreve como pode utilizar notificações VOIP de APNS através dos Hubs de Notificação do Azure.
Para obter mais informações sobre as notificações push para algumas plataformas populares, veja os tópicos seguintes:
Como funcionam as notificações push?
As notificações push são entregues através de infraestruturas específicas da plataforma denominadas Sistemas de Notificação de Plataforma (PNS). Oferecem funcionalidades push básicas para entregar uma mensagem a um dispositivo com uma alça fornecida e não têm uma interface comum. Para enviar uma notificação a todos os clientes nas versões Android, iOS e Windows de uma aplicação, o programador tem de trabalhar separadamente com o Serviço apple Push Notification (APNS), o Firebase Cloud Messaging (FCM) e o Windows Notification Service (WNS).
A um nível elevado, eis como o push funciona:
- Uma aplicação quer receber uma notificação, pelo que contacta o PNS da plataforma de destino na qual a aplicação está em execução e pede uma alça push exclusiva e temporária. O tipo de identificador depende do sistema (por exemplo, o WNS utiliza URIs enquanto o APNS utiliza tokens).
- A aplicação cliente armazena esta alça no back-end ou fornecedor da aplicação.
- Para enviar uma notificação push, o back-end da aplicação contacta o PNS com a alça para direcionar uma aplicação cliente específica.
- O PNS reencaminha a notificação para o dispositivo especificado pelo identificador.
Os desafios das notificações push
Os PNS são poderosos. Contudo, deixam muito trabalho ao programador da aplicação para implementar até mesmo cenários de notificações push comuns, como difundi-las para utilizadores segmentados.
O envio de notificações push requer uma infraestrutura complexa que não está relacionada com a lógica de negócio principal da aplicação. Alguns dos desafios da infraestrutura são:
-
Dependência da plataforma
- O back-end requer uma lógica complexa e difícil de manter dependente da plataforma para enviar notificações para dispositivos em várias plataformas, uma vez que os PNSes não são unificados.
-
Dimensionamento
- De acordo com as diretrizes de PNS, os tokens de dispositivos têm de ser atualizados em todas as iniciações de aplicações. O back-end lida com uma grande quantidade de tráfego e acesso à base de dados apenas para manter os tokens atualizados. Quando o número de dispositivos aumenta para centenas, milhares ou milhões, o custo de criar e manter esta infraestrutura é enorme.
- A maioria dos PNS não suporta a difusão para vários dispositivos. Uma simples difusão para um milhão de dispositivos resulta num milhão de chamadas para os PNS. Dimensionar esta quantidade de tráfico com latência mínima não é algo trivial.
-
Encaminhamento
- Embora os PNSes forneçam uma forma de enviar mensagens para dispositivos, a maioria das notificações de aplicações são direcionadas para utilizadores ou grupos de interesses. O back-end tem de manter um registo para associar dispositivos a grupos de interesses, utilizadores, propriedades, etc. Esta sobrecarga aumenta o tempo para os custos de comercialização e manutenção de uma aplicação.
Porquê utilizar os Hubs de Notificação?
Os Hubs de Notificação eliminam todas as complexidades associadas ao envio de notificações push por conta própria a partir do back-end da aplicação. A infraestrutura de notificações push de escalamento horizontal e multiplataforma reduz a programação relacionada com pushes e simplifica o seu back-end. Com os Hubs de Notificação, os seus dispositivos são meramente responsáveis pelo registo dos respetivos identificadores do PNS hum hub, ao passo que o back-end envia mensagens aos utilizadores ou grupos de interesse, conforme mostrado na seguinte figura:
Os Hubs de Notificação são o motor push pronto a utilizar com as seguintes vantagens:
-
Várias plataformas
- Suporte para todas as principais plataformas push.
- Uma interface comum para enviar para todas plataformas em formatos específicos para uma plataforma ou formatos independentes de plataforma sem qualquer trabalho para uma plataforma específica.
- Gestão de identificadores dos dispositivos num único local.
-
Vários back-ends
- Cloud ou no local.
- .NET, Node.js, Java, Python, etc.
-
Conjunto de padrões de entrega rico
- Difundir para uma ou mais plataformas: pode difundir instantaneamente para milhões de dispositivos em plataformas com uma única chamada à API.
- Enviar para dispositivo: pode segmentar notificações para dispositivos individuais.
- Enviar para o utilizador: as etiquetas e os modelos ajudam-no a aceder a todos os dispositivos entre plataformas para um utilizador.
- Enviar para o segmento com etiquetas dinâmicas: a funcionalidade de etiquetas ajuda-o a segmentar dispositivos e a enviá-los de acordo com as suas necessidades, quer esteja a enviar para um segmento ou uma expressão de segmentos (por exemplo, ativo E vive em Seattle NÃO é um novo utilizador). Em vez de estar restrito a publicar-subscrever, pode atualizar etiquetas de dispositivo em qualquer lugar e em qualquer altura.
- Push localizado: a funcionalidade de modelos ajuda a conseguir a localização sem afetar o código de back-end.
- Push silencioso: pode ativar o padrão push-to-pull ao enviar notificações silenciosas para os dispositivos e acioná-las para concluir determinadas extrações ou ações.
- Push agendado: pode agendar notificações para serem enviadas em qualquer altura.
- Push direto: pode ignorar o registo dos dispositivos no serviço Hubs de Notificação e enviar por lotes diretamente para uma lista de identificadores de dispositivos.
- Push personalizado: as variáveis push do dispositivo ajudam-no a enviar notificações push personalizadas específicas do dispositivo com pares chave-valor personalizados.
-
Escalabilidade
- Enviar mensagens rápidas para milhões de dispositivos sem voltar a arquitetar ou fragmentar dispositivos.
-
Segurança
- Segredo de Acesso Partilhado (SAS) ou autenticação federada.
Passos seguintes
Seguir Tutorial: Enviar notificações para aplicações móveis para aprender a criar e a utilizar hubs de notificação.