Я создал приложение, которое отправляет push-уведомления для телефонов IOS, и приложение отправляет push успешно одному пользователю за раз. Проблема возникает при отправке push примерно на 100k пользователей за раз (конечно, большая большая задержка будет возникать на мобильных телефонах, так как я перебираю токены устройства, чтобы послать push один за другим).
Поэтому из-за этой задержки я не хочу зацикливать свой DataTable. Мне нужно отправить все уведомления на все токены устройства мгновенно, поэтому устройства получают push-уведомления одновременно без каких-либо задержек.
Есть ли способ сделать это? NB: Я использую С#. Если другой язык может решить и решить эту проблему, пожалуйста, совет.
Вы не контролируете, когда устройства получают push-уведомления. Даже если вам удалось мгновенно отправить свои 100 тыс. Push-уведомлений на сервер APNS, скорость, с которой они фактически доставляются на устройства, зависит от сервера APNS.
Если вы спрашиваете, как мгновенно отправлять 100 тыс. Push-уведомлений на сервер APNS, вы можете повысить скорость, открыв несколько сокетов на сервере APNS и отправив уведомления в несколько потоков. Даже когда вы отправляете уведомления один за другим, предполагая, что вы используете одно и то же соединение, а не закрываете и открываете сокет все время, они по умолчанию загружаются на уровне TCP, поэтому они добираются до APNS-сервера партиями.
Вы можете посмотреть библиотеку PushSharp. Он будет управлять открытием и закрытием нескольких сокетов для вас. Он также имеет обратную связь, поэтому вы узнаете, не удалось ли какое-либо нажатие.