iOS APNS "лучший из возможных" запасной вариант
Я не могу, кажется, иметь мою голову вокруг этого. APNS, как указано в документации, доставляется максимально эффективно, т.е. доставка не гарантируется. Однако, если я хочу использовать модель push-уведомлений в моем клиент-серверном приложении, я должен как-то использовать их.
Общая модель выглядит следующим образом: на сервере появляются новые данные -> сервер затем отправляет push-уведомление, информирующее клиентов о наличии новых данных -> клиент загружает новые данные.
Тогда возникает вопрос: если я не могу полностью полагаться на доставляемое уведомление, какой резервный механизм я могу использовать, чтобы гарантировать получение клиентом новых данных, доступных на сервере? Как обеспечить, чтобы клиент имел самые последние данные с использованием APNS?
2 ответа
Как обеспечить, чтобы клиент имел самые последние данные с использованием APNS?
Нет никакого способа сделать это только с APNS. Ваш клиент должен запросить ваш сервер, когда приложение выведено на передний план, чтобы узнать, есть ли новые данные, независимо от каких-либо push-уведомлений, которые вы, возможно, потеряли или получили.
Все зависит от того, как вы планируете использовать APNS.
Допустим, вы делали приложение, которое продавало такие вещи, как eBay. У тебя есть:
- ставки, размещаемые несколькими пользователями
- обратный отсчет времени до закрытия
Вы не будете использовать APNS для обновления таймера на устройстве лиц или уведомления их о текущей цене товара. Они слишком важны, чтобы полагаться на доставку с максимальными усилиями и не были предназначены для использования APNS.
Было бы лучше, если бы в этом сценарии приложение каждые несколько секунд опрашивало сервер на предмет обновленной информации. Затем вы могли бы использовать APNS для не критичных функций, таких как уведомление пользователя, если он перебил или выиграл предмет.