Ich habe ein Problem, bei dem einige Geräte seit gestern keine Push-Benachrichtigung erhalten. Das Zertifikat / Geräte-Token scheint korrekt zu sein, seit das Gerät erfolgreich Push-Benachrichtigungen bis gestern erhalten hat.
Auf der Serverseite gibt es keine Fehler oder Verbindungsverweigerungen, und die Push-Benachrichtigung scheint jedes Mal erfolgreich gesendet zu werden.
Aber es gibt viele Gelegenheiten, bei denen das Gerät den Push nicht korrekt empfängt.
Einige umgebende Informationen:
Es gibt keinen Unterschied im serverseitigen Ergebnis, wenn der Push erfolgreich ist und das Gerät ihn nicht empfängt ... Daher ist es praktisch unmöglich, das Problem zu identifizieren.
Dies ist der serverseitige PHP-Code, den ich verwende:
%Vor%Das Protokoll sagt mir, dass der Push erfolgreich war (Ausschneiden des Tokens für Privatsphäre):
%Vor%Wie löse ich das?
Das habe ich selbst gelöst, also werde ich eine Antwort posten.
Ich habe den Rat erhalten, dass das Öffnen und Schließen des Sockets für jede einzelne Nachricht nicht empfohlen wird, wie in den offiziellen Dokumenten von Apple vermerkt:
"Sie sollten auch Verbindungen zu APNs über mehrere Benachrichtigungen hinweg beibehalten. APNs können Verbindungen in Betracht ziehen, die schnell und wiederholt als Denial-of-Service-Angriff eingerichtet und abgebaut werden. Bei einem Fehler schließt APNs die Verbindung, bei der der Fehler aufgetreten ist. "
Ich habe meine Architektur so eingerichtet, dass die Verbindung während mehrerer APNS-Aufrufe beibehalten wird, und jetzt funktioniert sie ohne Probleme. Ich habe ein Warteschlangensystem basierend auf apns-php ( Ссылка ) erstellt.
Hier ist mein Code für jeden, der ihn braucht:
Überprüfe zuerst, ob dein Gerät ein Jailbreak ist, dann wird es PushNotification nicht unterstützen. Dazu musst du die SAMPref-App von Cydia herunterladen und diese App öffnen, dann unterstützt dein Gerät Push-Benachrichtigungen. Sie können Ihr Gerät für die Push-Benachrichtigung testen, indem Sie die iPusher-App im App Store verwenden. Wenn Sie eine Push-Benachrichtigung erhalten, wird Ihr Gerät unterstützt.
Nach dieser ersten Überprüfung wird Ihre App mit einem geeigneten Push-Benachrichtigungszertifikat signiert?
Danke
Tags und Links iphone php apple-push-notifications