Пуш-уведомления iOS не всегда доставляются: в зависимости от количества символов + скорость wifi-соединения + свободное место на устройстве?

В App Store есть приложение на основе Swift, в которое входит командный мессенджер.

У нас возникают проблемы с доставкой некоторых фоновых push-уведомлений.

Если мы войдем в систему с одной и той же учетной записью на устройстве iOS и Android, все push-уведомления появятся на устройстве Android, в то время как на устройстве iOS отобразятся только некоторые push-уведомления.

Исходя из этого, проблема, похоже, не связана с бэкэндом. Проходя по коду Swift, все тоже вроде бы хорошо, и мы также получаем некоторые push-уведомления.

Настроить:

  • Мы отправляем push-уведомления напрямую из бэкэнда (node.js) через APNS на устройства iOS. Мы не используем промежуточного провайдера (например, Pusher).

Описание проблемы:

  • Тестирование на 3 устройствах (полностью заряженный аккумулятор, Bluetooth выключен, функция "Не беспокоить" отключена, не установлено ни одного приложения, которое может блокировать push-уведомления и т. Д.).
    • Устройство A: iPhone5 на iOS 10.3.3 - 7 ГБ свободного места.
    • Устройство B: iPhone5 на iOS 10.3.3 - 9 ГБ свободного места.
    • Устройство C: iPhone5S на iOS11.

Тест на медленном Wi-Fi-соединении (хотя тест скорости показывает скорость загрузки 22 Мбит / с):

  • Все push-уведомления с 10 символами прошли на всех 3 устройствах.
  • Push-уведомления с +20 символов были показаны только на устройстве B + C.
  • Выше +30 символов, на устройство B + C не поступают push-уведомления.

Тест на более быстрое соединение Wi-Fi:

  • Используются те же устройства А и В. Устройство C не включено.
  • Push-уведомления, содержащие до 497 символов, принимаются и отображаются на обоих устройствах A + B.
  • Push-уведомления длиной более 509 символов никогда не принимаются ни на одном из этих двух устройств.
  • Короткие сообщения (менее 10 символов), мгновенно отправленные после сообщения "509 символов", не принимаются -> Похоже, что уведомления временно заблокированы. Через минуту или около того короткие уведомления толчка (например, 10 символов) принимаются и отображаются снова. Все короткие сообщения принимаются и отображаются до тех пор, пока мы снова не отправим длинное сообщение, которое блокирует доставку push-уведомлений.

Повторите тестирование на более медленном Wi-Fi-соединении - теперь происходит то же поведение, что и на более быстром соединении. Push-уведомления, содержащие не более 500 символов, отображаются, в то время как push-уведомления с большим количеством символов не проходят и, по-видимому, блокируют доставку небольших push-уведомлений, отправляемых впоследствии.

Размер полезной нагрузки не должен быть проблемой: поскольку мы на устройстве A изначально не получали push-уведомления выше +20 символов при медленном Wi-Fi-соединении, но можем получать push-уведомления с 497 символами на одном устройстве при более быстром Wi-Fi-соединении Я думаю, мы должны исключить, что проблема связана с размером полезной нагрузки. Ты согласен?

Может ли быть так, что комбинация этих трех параметров может повлиять на то, доставлено push-уведомление или нет?

  • Длина сообщения + скорость Wi-Fi соединения + свободное место доступно

Любое предложение о том, как решить эту проблему, чтобы обеспечить доставку всех push-уведомлений и избежать временной блокировки / недоставки, с которыми мы сталкиваемся?

Заранее спасибо,

Andreas

0 ответов

Другие вопросы по тегам