Я использовал https://github.com/Redth/APNS-Sharp для отправки push-уведомлений на все устройства, на которых установлено приложение iPhone. Это работает очень противоречиво!
Как возникла эта проблема?
У нас есть приложение для iPhone с 500 пользователями. Мы заметили, что большинство пользователей не получают уведомления! Дальнейшая отладка в реальном времени, я заметил следующую последовательность событий.
.....
10:37:33 AM - Notification Queued!
10:37:33 AM - Notification Queued!
10:37:33 AM - Notification Queued!
10:37:33 AM - Notification Queued!
10:37:36 - Connecting...
10:37:36 - Connected...
10:37:36 - Notification Success
10:37:36 - Notification Success
10:37:36 - Notification Success
...
10:37:36 - Error: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host.
10:37:39 - Connecting...
10:37:40 - Connected...
10:37:40 - Notification Success
10:37:40 - Notification Success
....
Что я наделал?
Я создал тестовое приложение для iPhone с использованием производственного сертификата Ad-Hoc и установил его на 5 устройствах. Я пытался отправить несколько сообщений одновременно на все эти устройства. Я заметил совершенно непоследовательное поведение при получении сообщений. Иногда все 5 устройств получали сообщения мгновенно. Из 5, 3 устройства получают сообщение почти мгновенно, а из двух других устройств каждое из них иногда получает сообщение мгновенно, а другое не получает все сообщения, кроме последнего сообщения. Иногда это не получает сообщение вообще!
Я также пытался отправить сообщение на отдельное устройство одновременно и заметил, что, как только оно начинает получать сообщение, все сообщения приходят мгновенно, а иногда просто получают последнее сообщение после длительной (около 20 минут).
Что я проверил?
- Он использует одно и то же соединение для отправки всех сообщений, поэтому не открывает несколько соединений.
- Использование правильного сертификата и сервера push-уведомлений.
- Несколько раз запускала службу обратной связи, но она не возвращала идентификаторы устройств.
Кто-нибудь еще заметил это поведение? Что может быть проблемой при отправке сообщения на несколько устройств? Могу ли я сделать что-нибудь еще, чтобы сделать Push-уведомление надежным?
Спасибо.