Développement iOS : compréhension du principe du push à distance des APN Apple

Cet article est une compréhension du principe du push APN, j'espère qu'après l'avoir lu, vous pourrez maîtriser un point de connaissance.

APNsC'est Apple Push Notification Servicel'abréviation de serveur push d'Apple.
Veuillez ajouter une description en image
La transmission de notifications à distance implique plusieurs éléments clés :

  • Le serveur de votre entreprise ou un fournisseur de services tiers, appelé serveur fournisseur
  • Service de notification push Apple (APN)
  • appareil de l'utilisateur
  • Votre application s'exécute sur l'appareil de l'utilisateur

Nous souhaitons mettre en œuvre un push de message, qui est grossièrement divisé en deux étapes : l'inscription au push et le push du message .

S'inscrire au push

Veuillez ajouter une description en image

  1. Lors du lancement d'une application, elle demande généralement l'autorisation push. Lorsque l'utilisateur clique sur Autoriser, le téléphone enverra l'ID de l'appareil et le certificat push à Apple. Une fois qu'Apple aura reçu APNs服务器ces informations, il vérifiera si elles sont basées sur le certificat push et l'ID de l'appareil. et les informations sur l'application. Avec l'autorisation push, s'il existe une autorisation push, Apple mettra les informations sur l'appareil dans la liste push.
  2. Une fois qu'Apple a réussi la vérification de l'autorisation, il en génère une en fonction de l'ID de l'appareil et de l'ID de l'APP deviceToken, et deviceTokenle renvoie à l'APP.
  3. deviceTokenUne fois livré au téléphone mobile, il sera deviceTokentransmis directement à votre propre serveur ; s'il est connecté à un SDK tiers, il sera transmis au back-end du fournisseur de services tiers, et le push ultérieur sera être complété par le tiers.

transmettre des nouvelles

Veuillez ajouter une description en image

  1. Lorsque le serveur a un message qui doit être poussé vers l'APP, le serveur portera le certificat push et le corps du message poussé pour le notifier.APNs
  2. APNsAprès réception du message à pousser, le certificat transporté sera authentifié et s'il réussit, APNsle message sera envoyé au téléphone mobile selon les règles push.
  3. Lorsque le téléphone mobile reçoit un message push d'Apple, il déterminera d'abord si le développeur a mis en œuvre l'interception du message push avant de l'afficher. Dans le cas contraire, il sera affiché directement ; si l'interception a été mise en œuvre, il sera remis au développeur. pour traitement.

Ce qui précède est le processus push général. Ensuite, examinons les détails : comment le téléphone mobile APNsétablit-il une connexion ? Comment APNsétablir la connexion avec le serveur ? deviceTokenVa-t-il expirer ?

L'appareil enregistre l'application avec les APN

Communique avec le service de notification Apple Push (APN) et reçoit un jeton d'appareil unique pour identifier votre application.
Conditions préalables à la communication entre l'appareil et les APN :

  • L'application est configurée avec la fonction push à distance
  • Registres de code pour les notifications à distanceUIApplication.shared.registerForRemoteNotifications()
  • L'utilisateur a autorisé et accepté le push à distance

Créer une connexion sécurisée entre les serveurs du fournisseur et les APN

Il existe deux types de connexions entre les serveurs du fournisseur et APNsles connexions basées sur des jetons et les connexions basées sur des certificats .

Établir des connexions basées sur des jetons aux APN

L'authentification basée sur un jeton offre un APNsmoyen de communication sans état avec . La communication sans état est plus rapide que la communication basée sur des certificats, car elle ne nécessite pas APNsde recherche de certificats ou d'autres informations sur le serveur de votre fournisseur.
L'utilisation de l'authentification par jeton présente d'autres avantages :

  • Vous pouvez utiliser le même jeton depuis plusieurs serveurs fournisseurs.
  • Vous pouvez utiliser un jeton pour distribuer des notifications à toutes les applications de votre entreprise.
  • Les requêtes basées sur des jetons sont légèrement plus volumineuses que les requêtes basées sur des certificats, car chaque requête inclut un jeton.
  • Votre jeton doit être mis à jour et chiffré à l'aide de la clé de signature de jeton du fournisseur qui vous a été fournie par Apple au moins une fois par heure (Apple exige un maximum de 20 minutes et un minimum de 60 minutes).

Les connexions basées sur des jetons peuvent envoyer des notifications à plusieurs applications (applications sous un seul compte de développeur). La communication est plus rapide, mais la taille du message de notification est plus grande et votre jeton doit être actualisé régulièrement. Les fournisseurs tiers utilisent généralement cette méthode. Tels
que Poussée d'Aurora, etc.

Établir des connexions basées sur des certificats aux APN

Avec l'authentification basée sur les certificats, vous utilisez des certificats de fournisseur (certificats push) pour établir une connexion sécurisée entre le serveur de votre fournisseur et les APN. Vous pouvez obtenir ce certificat auprès d'Apple via votre compte développeur.

Veuillez ajouter une description en image

  • La confiance étant établie au niveau du serveur, les demandes de notification individuelles contiennent uniquement votre charge utile et votre jeton d'appareil. Ils ne contiennent pas de jetons d'authentification, ce qui réduit légèrement la taille de chaque demande de notification.
  • Vous devez créer des certificats distincts pour chaque application et vous devez également gérer des connexions APN distinctes pour les notifications de chaque application.

Les connexions basées sur des certificats sont relativement simples, le corps du message de notification est légèrement plus petit et un certificat push doit être créé pour chaque application.

Caractéristiques du jeton de périphérique périphériqueToken

Enregistrez votre application auprès des APN et recevez un jeton d'appareil unique au monde, qui est essentiellement l'adresse de votre application sur l'appareil actuel. Le serveur de votre fournisseur doit disposer de ce jeton pour envoyer des notifications à l'appareil.

Un jeton d'appareil d'une application ne peut pas être utilisé avec une autre application, même si les deux applications sont installées sur le même appareil. Les deux applications doivent demander leur propre jeton d'appareil unique et le transmettre au serveur de votre fournisseur. (Le jeton de l'appareil n'est pas le même pour toutes les applications de cet appareil. De nombreux blogs l'ont mal expliqué. Le jeton de l'appareil est l'adresse de l'application sur cet appareil.)

Alors, le jeton de l'appareil expire-t-il ? Est-ce que ça va changer ?

Officiellement, les APN émettent un nouveau jeton lorsque l'utilisateur restaure l'appareil à partir d'une sauvegarde, lorsqu'il installe votre application sur un nouvel appareil et lorsqu'il réinstalle le système d'exploitation.

Lorsque l'application est désinstallée, le serveur de l'application et l'APNS enverront-ils toujours des messages à l'application ?

la réponse est négative. Parce qu'il APNsexiste un service de feedback. Lorsque APNsle serveur envoie un message à notre appareil, mais que l'appareil ne trouve pas l'application à laquelle l'envoyer, il renvoie APNsun message de retour au serveur, enregistrant que l'appareil a désinstallé l'application et ne peut pas recevoir le message push, puis il ne l'enverra plus à cet appareil. L'appareil a poussé le message.

Référence : developer.apple.com

Je suppose que tu aimes

Origine blog.csdn.net/wujakf/article/details/128788078
conseillé
Classement