Как и во многих других компаниях, той, в которой я работаю, неудобно использовать APNS от Apple: нет официальной библиотеки, потоки, которые отключаются случайным образом, и т. Д. То же самое и с системой push Android: ограничено небольшими партиями, полностью отличается от APNS от Apple ... Вот почему мы ищем альтернативу, и когда Amazon заявила, что может отправлять миллионы push-уведомлений почти бесплатно, мы подумали, что SNS будет идеальным решением.
Проблема в том, что нам часто приходится обращаться к более чем одному миллиону устройств, и, очевидно, наши push-кампании редко нацелены на одни и те же устройства. Насколько мы выяснили, единственное решение - использовать API AWS, который предоставляет только метод для создания конечных точек по одной за раз! Для нас это очень важно, потому что после некоторого тестирования мы выяснили, что для создания 1 000 000 конечных точек потребуется примерно 15 часов (~ 17 вызовов в секунду).
Даже после того, как все конечные точки созданы, чтобы отправить все push-уведомления сразу, конечные точки необходимо добавить в тему, и, опять же, это нужно делать по одной конечной точке за раз (так что еще 15 часов). Событие, если бы мы распределили наши вызовы, скажем, до 30 потоков, это все равно заняло бы час!
Итак, может ли кто-нибудь сказать нам, есть ли что-то, что мы пропустили? Неужели Amazon действительно ожидает, что мы заполним их веб-сервисы в течение 30 часов, чтобы создать кампанию с одним push? Как они могут притвориться, что отправляют миллион толчков в секунду, если на его подготовку уходит часы? Работают ли они над пакетным API для SNS? Можно ли подключить базу данных Amazon, содержащую токены, для кормления темы SNS?