wyślij powiadomienie push do ios, aby porozmawiać z użytkownikiem offline, openfire xmpp

Mam aplikację do czatu ios, która korzysta z otwartego ognia, muszę wysłać powiadomienie push, gdy wiadomość (1) nie może zostać dostarczona z jakiegokolwiek powodu, (2) aplikacja jest w stanie zawieszenia, tj. Nie może wygenerować powiadomienia samemu.

Przeczytałem większość związanych z tym pytań / sugestii na temat stackoverflow i gdzie indziej i doszedłem do kilku rozwiązań mojego problemu. Nie jestem deweloperem ios ani nie wiedziałem nic o openfire lub xmpp przed kilkoma dniami, więc obawiam się, że moje zrozumienie rzeczy może nie być kompletne, a moje rozwiązania mogą być wadliwe.

Uprzejmie potwierdź moje zrozumienie i zasugeruj, czy czegoś mi brakuje lub czy jest lepsze podejście. Proszę również zasugerować, jak skomplikowane będzie wdrożenie określonego rozwiązania wymienionego poniżej.

Wyzwaniem jest tutaj określenie, kiedy wymagane jest pchnięcie i gdzie inicjowany jest proces

1) Jednym ze sposobów jest użycie implementacji xep-0184 xmpp do sprawdzenia, czy wiadomość została dostarczona. w tym celu powinniśmy mieć dostarczoną flagę z wiadomością w bazie danych ios, która jest aktualizowana, gdy otrzymana odpowiedź zostanie odebrana z innego końca. Więc musimy sprawdzić tę flagę po chwili i jeśli dostarczony status jest fałszywy, zainicjuj proces wypychania za pomocą wiadomości. Wygląda na skomplikowane rozwiązanie (czekaj na odpowiedź .. zaznacz flagę z pewnym opóźnieniem .. niezbyt imponujące)

2) Bardziej prostym podejściem jest zrobienie czegoś w otwartym ogniu, kiedy otwarty ogień nie może dostarczyć wiadomości, przechowuje ją w tabeli offline, możemy zrobić przechwytywanie w tej części i zainicjować proces push z wiadomością. Wygląda to na poprawne podejście, ale naprawdę boję się, że dostanę tak dużo wewnątrz otwartego ognia i zmienię coś (może być też łatwo, ktoś, kto pracował trochę z otwartym ogniem, może to powiedzieć?)

3) To jest moja ostatnia szansa, a to nie jest rozwiązanie .. ale jeśli nie mogę tego zrobić poprawnie w oczekiwanym czasie (czyli za tydzień), planujemy wysłać powiadomienie push dla wszystkich wiadomości. oppenfire zajmie się normalnym czatem, podczas gdy push będzie wysyłany z naszego serwera dla każdej wiadomości, ale gdy aplikacja znajduje się na pierwszym planie, robimy coś, aby poradzić sobie z dodatkowymi wiadomościami push, które nie muszą być pokazywane, w przeciwnym razie wypychanie jest odbierane, gdy jest wiadomość. Co myślicie o tym tymczasowym sposobie poruszania się (oczywiście będziemy musieli to zmienić tak szybko, jak to możliwe), czy jest to wykonalne (lub też tutaj coś brakuje).

P.S. Czy ktoś może powiedzieć, jak obsługuje to Whatsapp i inne popularne aplikacje?

Wielkie dzięki za Twoją pomoc.

questionAnswers(2)

yourAnswerToTheQuestion