Sende eine Push-Benachrichtigung an ios für den Chat an den Offline-Benutzer openfire xmpp

Ich habe eine iOS-Chat-Anwendung, die openfire verwendet. Ich muss lediglich eine Push-Benachrichtigung senden, wenn die Nachricht (1) aus irgendeinem Grund nicht zugestellt werden kann. (2) Die App befindet sich im angehaltenen Zustand, dh es kann keine Benachrichtigung generiert werden allein.

Ich habe die meisten diesbezüglichen Fragen / Vorschläge zum Stackoverflow und zu anderen Themen gelesen und nur wenige Lösungen für mein Problem gefunden. Ich bin kein iOS-Entwickler und wusste vor ein paar Tagen noch nichts über OpenFire oder XMPP. Ich fürchte, mein Verständnis der Dinge ist möglicherweise nicht vollständig und meine Lösungen sind möglicherweise fehlerhaft.

Bitte bestätigen Sie mein Verständnis und schlagen Sie vor, ob mir etwas fehlt oder ob es einen besseren Ansatz gibt. Bitte schlagen Sie auch vor, wie komplex die Implementierung einer bestimmten unten aufgeführten Lösung sein wird.

Die Herausforderung hierbei besteht darin, zu identifizieren, wann der Push erforderlich ist und wo der Prozess eingeleitet werden soll

1) Eine Möglichkeit ist die Verwendung der xep-0184-Implementierung von xmpp, um zu überprüfen, ob die Nachricht zugestellt wird. Um dies zu tun, sollten wir ein Delivered-Flag mit einer Nachricht in der ios-Datenbank haben, die aktualisiert wird, wenn die gelieferte Antwort vom anderen Ende empfangen wird. Wir müssen also nach einer Weile nach diesem Flag suchen und wenn der gelieferte Status falsch ist, den Push-Prozess mit der Nachricht einleiten. Scheint eine komplizierte Lösung zu sein (warte auf Antwort .. markiere das Flag mit einiger Zeitverzögerung .. nicht sehr beeindruckend)

2) Ein direkterer Ansatz ist, etwas in openfire zu tun. Wenn openfire eine Nachricht nicht zustellen kann, speichert es sie in einer Offlinetabelle. Wir können diesen Teil abfangen und den Push-Prozess mit der Nachricht einleiten. Dies scheint der richtige Ansatz zu sein, aber ich habe wirklich Angst, so viel in das offene Feuer zu bekommen und etwas zu verändern.

3) Dies ist mein letzter Ausweg, und dies ist keine Lösung. Aber wenn ich es nicht innerhalb des erwarteten Zeitrahmens (in einer Woche) richtig machen kann, planen wir, eine Push-Benachrichtigung für alle Nachrichten zu senden. oppenfire übernimmt den normalen Chat, während für jede Nachricht ein Push von unserem Server gesendet wird. Wenn sich die App jedoch im Vordergrund befindet, wird etwas unternommen, um die zusätzlichen Push-Nachrichten zu behandeln, die nicht angezeigt werden müssen. Andernfalls wird bei jedem Push ein Push empfangen Botschaft. Was haltet ihr von dieser vorübergehenden Umkehrung (wir werden das natürlich ändern müssen, sobald wir können), ist dies machbar (oder ich vermisse hier auch etwas).

P.S. Kann jemand sagen, wie WhatsApp und andere beliebte Apps damit umgehen?

Vielen Dank für deine Hilfe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage