Служба обратной связи Apple (APNS) работает медленно - PullRequest
1 голос
/ 28 июля 2011

Я закодировал Push-уведомления (APNS, Apple Push Notification Service) для приложения для iPhone с PHP.Все работает нормально, пока приложение не удалено с устройства.Я пользуюсь Feedback Service от Apple, чтобы получить удаленные устройства.Если я получаю устройства, я отмечаю их как НЕАКТИВНЫЙ в своей базе данных, чтобы не отправлять больше push-уведомлений этим устройствам.

Проблема заключается в том, что Apple работает медленно.Если вы удаляете приложение со своего устройства, в Apple отправляется запрос, и я собираю устройства с помощью службы обратной связи.Но Apple не пересылает неактивированные устройства мгновенно, поэтому я получаю следующую ошибку, поскольку не могу отправить push-уведомления на неактивное устройство:

PHP Warning: fwrite(): SSL: Broken pipe in apns.php on line 155

Мой сценарий службы обратной связи запускается каждые 5минут, но обновление от Apple приходит каждые 10-15 минут.Если я отправляю push-уведомление в течение 10-15 минут, появляется указанная выше ошибка, поскольку в базе данных устройство по-прежнему помечено как ACTIVE , а на сервере Apple устройство помечено как INACTIVE .,

Нет проблем с подключением к службе обратной связи или к службе Push, но я не всегда получаю устройства от службы обратной связи.

Привет, TheFox

1 Ответ

1 голос
/ 29 июля 2011

Ответ с форума разработчиков Apple.com (https://devforums.apple.com/thread/114446):

Ваш сервер должен обнаруживать отключения и при необходимости повторно подключаться. Ничто не является «мгновенным», когда в сети участвуют; всегда есть некоторая задержка, и код должен учитывать это. Кроме того, рассмотрите возможность использования расширенного двоичного интерфейса, чтобы вы могли проверить ответ возврата и узнать, почему было разорвано соединение. Соединение также может быть разорвано в результате поддержки TCP, которая находится вне контроля Apple.

Так что я собираюсь установить для всех устройств значение НЕАКТИВНО , если сервер обнаружит отключение.

...