„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie optimiert man die Zustellung von Push-Benachrichtigungen für mehrere iPhone-Benutzer mit PHP und APNS?

Wie optimiert man die Zustellung von Push-Benachrichtigungen für mehrere iPhone-Benutzer mit PHP und APNS?

Veröffentlicht am 04.11.2024
Durchsuche:897

How to Optimize Push Notification Delivery for Multiple iPhone Users with PHP and APNS?

Optimierung der Push-Benachrichtigungszustellung für mehrere iPhone-Benutzer

Eine der größten Herausforderungen bei der Entwicklung eines robusten Nachrichtensystems für eine iPhone-Anwendung liegt in der Zustellung Push-Benachrichtigungen an mehrere registrierte Benutzer effizient und zeitnah senden. Um diese Herausforderung zu meistern und ein nahtloses Benutzererlebnis zu gewährleisten, beschäftigen wir uns intensiv mit den Besonderheiten des Sendens mehrerer iPhone-Push-Benachrichtigungen mithilfe von APNS (Apple Push Notification Service) und PHP.

Der Kern der Lösung ist der Registrierungsprozess. Hier sammeln und speichern Sie während des Onboardings das Geräte-Token für jeden Benutzer. Dieses Token dient als eindeutige Kennung, die von APNS verwendet wird, um Benachrichtigungen speziell an dieses Gerät zu übermitteln. Sobald die Registrierung abgeschlossen ist, können Sie Push-Benachrichtigungen auslösen, wenn ein Benutzer eine Nachricht sendet oder darauf antwortet.

Um Push-Benachrichtigungen programmgesteuert zu senden, können wir die PHP-Sprache und ihre integrierten Stream-Handling-Funktionen nutzen. Das folgende Codebeispiel bietet eine vereinfachte und dennoch effektive Möglichkeit, mehrere Push-Benachrichtigungen zu senden:

// Define the notification payload
$body = [
    'aps' => [
        'badge' =>  1,
        'alert' => $message,
        'sound' => 'default'
    ]
];
$payload = json_encode($body);

// Establish a secure connection to APNS
$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);

if (!$fp) {
    exit("Failed to connect amarnew: $err $errstr" . PHP_EOL);
}

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

// Send the notification
$result = fwrite($fp, $msg, strlen($msg));

if (!$result) {
    echo 'Message not delivered' . PHP_EOL;
} else {
    echo 'Message successfully delivered amar'.$message. PHP_EOL;
}

// Close the connection
fclose($fp);

Der Code funktioniert, indem er eine Nutzlast erstellt, die Informationen über die Benachrichtigung enthält, wie z. B. die Anzahl der Ausweise, die Warnmeldung und den abzuspielenden Ton. Anschließend stellt es eine sichere Verbindung zu APNS her und erstellt eine binäre Benachrichtigungsnachricht basierend auf der Nutzlast und dem Geräte-Token. Die Benachrichtigung wird anschließend an den Server gesendet und ihr Zustellungsstatus wird gemeldet.

Mit dieser Technik können Sie Push-Benachrichtigungen zeitnah und effizient an mehrere registrierte iPhone-Benutzer senden. Darüber hinaus können Sie die Lösung um die Fehlerbehandlung erweitern und den Benachrichtigungsinhalt an die Vorlieben des Benutzers anpassen.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729496719 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3