Desenvolvimento iOS: compreensão do princípio de push remoto do Apple APNs

Este artigo é uma compreensão do princípio do push de APNs. Espero que depois de lê-lo você possa dominar um ponto de conhecimento.

APNsÉ Apple Push Notification Servicea abreviatura de servidor push da Apple.
Adicione a descrição da imagem
A entrega de notificações remotas envolve vários componentes principais:

  • O servidor da sua empresa ou um provedor de serviços terceirizado, chamado servidor provedor
  • Serviço de notificação push da Apple (APNs)
  • dispositivo do usuário
  • Seu aplicativo é executado no dispositivo do usuário

Queremos implementar um push de mensagem, que é basicamente dividido em duas etapas: registrar-se para push e enviar a mensagem .

Registre-se para enviar

Adicione a descrição da imagem

  1. Ao iniciar um APP, ele geralmente solicita permissão push. Quando o usuário clica em Permitir, o telefone enviará o ID do dispositivo e o certificado push para a Apple. Depois que a APNs服务器Apple receber essas informações, ela verificará se elas são baseadas no certificado push, ID do dispositivo e informações do APP. Com permissão de push, se houver permissão de push, a Apple colocará as informações do dispositivo na lista de push.
  2. Depois que a Apple passar na verificação de permissão, ela gerará uma com base no ID do dispositivo e no APP ID deviceTokene deviceTokena retornará ao APP.
  3. deviceTokenDepois de entregue ao telefone celular, ele será deviceTokenpassado diretamente para o seu próprio servidor; se estiver conectado a um SDK de terceiros, será passado para o back-end do provedor de serviços terceirizado e o push subsequente será ser preenchido pelo terceiro.

encaminhar notícias

Adicione a descrição da imagem

  1. Quando o servidor tiver uma mensagem que precisa ser enviada para o APP, o servidor carregará o certificado push e o corpo da mensagem enviada para notificarAPNs
  2. APNsApós o recebimento da mensagem que precisa ser enviada, o certificado transportado será autenticado e, caso seja aprovado, APNsa mensagem será enviada para o celular de acordo com as regras de push.
  3. Quando o telefone celular recebe uma mensagem push da Apple, ele primeiro determinará se o desenvolvedor implementou a interceptação de mensagens push antes de exibi-la. Caso contrário, ela será exibida diretamente; se a interceptação tiver sido implementada, ela será entregue ao desenvolvedor Para processamento.

O acima é o processo geral de push. A seguir, vamos resolver os detalhes: Como o telefone celular APNsestabelece uma conexão? Como APNsestabelecer conexão com o servidor? deviceTokenEle irá expirar?

Dispositivo registra aplicativo com APNs

Comunica-se com o Apple Push Notification Service (APNs) e recebe um token de dispositivo exclusivo para identificar seu aplicativo.
Pré-requisitos para comunicação de dispositivos e APNs:

  • O aplicativo está configurado com função de envio remoto
  • Registradores de código para notificações remotasUIApplication.shared.registerForRemoteNotifications()
  • O usuário autorizou e concordou com o push remoto

Crie uma conexão segura entre servidores provedores e APNs

Existem dois tipos de conexões entre servidores provedores e APNsconexões baseadas em token e conexões baseadas em certificado .

Estabelecendo conexões baseadas em token com APNs

A autenticação baseada em token fornece uma APNsmaneira sem estado de comunicação com o . A comunicação sem estado é mais rápida do que a comunicação baseada em certificado porque não requer APNsa consulta de certificados ou outras informações sobre o servidor do seu provedor.
Existem outras vantagens em usar a autenticação baseada em token:

  • Você pode usar o mesmo token de vários servidores de provedores.
  • Você pode usar um token para distribuir notificações para todos os aplicativos da sua empresa.
  • As solicitações baseadas em token são um pouco maiores que as solicitações baseadas em certificado porque cada solicitação inclui um token.
  • Seu token deve ser atualizado e criptografado usando a chave de assinatura de token do provedor fornecida pela Apple pelo menos uma vez por hora (a Apple exige no máximo 20 minutos e no mínimo 60 minutos)

Conexões baseadas em token podem enviar notificações para vários aplicativos (aplicativos em uma conta de desenvolvedor). A comunicação é mais rápida, mas o tamanho da mensagem de notificação é maior e seu token precisa ser atualizado regularmente. Provedores terceirizados geralmente usam esse método.
Como Empurrão Aurora, etc.

Estabeleça conexões baseadas em certificados com APNs

Com a autenticação baseada em certificado, você usa certificados de provedor (certificados push) para estabelecer uma conexão segura entre o servidor do provedor e os APNs. Você pode obter este certificado da Apple por meio de sua conta de desenvolvedor.

Adicione a descrição da imagem

  • Como a confiança é estabelecida no nível do servidor, as solicitações de notificação individuais contêm apenas a carga útil e o token do dispositivo. Eles não contêm tokens de autenticação, o que reduz ligeiramente o tamanho de cada solicitação de notificação.
  • Você deve criar certificados separados para cada aplicativo e também gerenciar conexões APNs separadas para as notificações de cada aplicativo

As conexões baseadas em certificados são relativamente simples, o corpo da mensagem de notificação é um pouco menor e um certificado push precisa ser criado para cada aplicativo.

Características do token de dispositivo deviceToken

Registre seu aplicativo com APNs e receba um token de dispositivo globalmente exclusivo, que é essencialmente o endereço do seu aplicativo no dispositivo atual. O servidor do seu provedor deve ter esse token para enviar notificações ao dispositivo.

Um token de dispositivo de um aplicativo não pode ser usado com outro aplicativo, mesmo que ambos os aplicativos estejam instalados no mesmo dispositivo. Ambos os aplicativos devem solicitar seu próprio token de dispositivo exclusivo e encaminhá-lo ao servidor do seu provedor. (O token do dispositivo não é o mesmo para todos os aplicativos neste dispositivo. Muitos blogs explicaram isso incorretamente. O token do dispositivo é o endereço do aplicativo neste dispositivo)

Então o token do dispositivo expira? Isso vai mudar?

Oficialmente, os APNs emitem um novo token quando o usuário restaura o dispositivo do backup, quando o usuário instala seu aplicativo em um novo dispositivo e quando o usuário reinstala o sistema operacional.

Quando o APP for desinstalado, o servidor APP e o APNS ainda enviarão mensagens para o APP?

a resposta é negativa. Porque APNsexiste um serviço de feedback. Quando APNso servidor envia uma mensagem para o nosso dispositivo, mas o dispositivo não consegue encontrar o APP para enviá-la, ele retornará APNsuma mensagem de feedback ao servidor, registrando que o dispositivo desinstalou o APP e não pode receber a mensagem push, e então ele não a enviará para esse dispositivo novamente. O dispositivo enviou a mensagem.

Referência: desenvolvedor.apple.com

Acho que você gosta

Origin blog.csdn.net/wujakf/article/details/128788078
Recomendado
Clasificación