Comment implémenter plusieurs notifications push avec APNS et PHP ?

Linda Hamilton
Libérer: 2024-10-21 15:55:02
original
494 Les gens l'ont consulté

How do you implement multiple push notifications with APNS and PHP?

Envoi de plusieurs notifications push avec APNS et PHP

Dans un système de messagerie basé sur PHP, où les notifications push instantanées sont cruciales, la possibilité de envoyer plusieurs messages push aux appareils iOS enregistrés devient essentiel.

Lorsqu'un élève publie une question ou qu'un enseignant répond, l'utilisateur correspondant doit recevoir une notification push. Cela implique la gestion de plusieurs jetons d'appareil et la gestion des conditions d'erreur pour garantir une livraison fiable des messages.

Code PHP pour l'envoi de notifications push

L'extrait de code fourni offre une solution simple pour l'envoi messages push individuels :

<code class="php">// Establish a secure connection using the iOS Push Notification service
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ckipad.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', 
    $err, 
    $errstr, 
    60, 
    STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, 
    $ctx);

// Check for a successful connection
if (!$fp)
    exit("Failed to connect: $err $errstr" . PHP_EOL);

// Prepare the push notification payload
$body['aps'] = array(
    'badge' => +1,
    'alert' => $message,
    'sound' => 'default'
);

$payload = json_encode($body);

// Create the binary notification
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;

// Send the message to the device
$result = fwrite($fp, $msg, strlen($msg));

// Check the message delivery status
if (!$result)
    echo 'Message not delivered' . PHP_EOL;
else
    echo 'Message successfully delivered: '.$message. PHP_EOL;

// Close the connection to the APNS server
fclose($fp);</code>
Copier après la connexion

Gestion des erreurs

Ce code gère les conditions d'erreur en vérifiant le résultat de la fonction fwrite. Si le message n'est pas remis, un message d'erreur s'affiche. Sinon, un message de réussite est enregistré.

Évolutivité

L'extrait de code vous permet d'envoyer plusieurs messages push en répétant le processus pour chaque destinataire. Pour optimiser l'évolutivité, envisagez d'utiliser un framework asynchrone comme le système de file d'attente de Laravel ou les fonctions pcntl de PHP pour gérer plusieurs notifications push en parallèle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal