Android Push Notification (GCM), чи існує щоденний ліміт?


Відповіді:


83

Оновлення: GCM застаріла, використовуйте FCM

Після того, як Google замінив C2DM на GCM, вони зняли всі обмеження.

ДЖЕРЕЛО: http://developer.android.com/google/gcm/c2dm.html#history

До GCM (коли його ще називали C2DM): https://developers.google.com/android/c2dm/#limitations )

Єдине обмеження, на яке ви накладаєте документацію GCM, це: http://developer.android.com/google/gcm/adv.html#lifetime

Цитата за посиланням вище:

Примітка. Існує обмеження на кількість повідомлень, які можна зберігати, не згортаючи. На даний момент цей ліміт становить 100. Якщо ліміт досягнуто, усі збережені повідомлення відкидаються. Потім, коли пристрій знову в мережі, він отримує спеціальне повідомлення про те, що ліміт досягнутий. Потім програма може впоратись із ситуацією належним чином, як правило, запитуючи повну синхронізацію.

Я не впевнений, що це стосується Вашого питання.


Зауваживши:, There is a limit on how many messages can be stored without collapsing. That limit is currently 100. If the limit is reached, all stored messages are discarded....це саме для конкретного користувача, правильно? тобто у користувача може бути вимкнено пристрій на тривалий час, таким чином повідомлення GCM накопичуються, а якщо кінцевої точки немає, згортання? або це 100 для ВСІХ користувачів?
Саурон

4
@Sauron: Це на пристрій.
Сіддхарт Леле

Якщо це не правильно, сервер зберігає останні 100, старіші повідомлення відкидаються. Коли пристрій підключається до мережі, надсилається 100 найсвіжіших повідомлень разом із повідомленням про ліміт?
ir2pid

17

Існує limitз 1000 notificationsв один йти.

Припустимо, що у вас є 50000 regids. Ви не можете відправити всіх 50000разом. Після першого 1000вам доведеться окремо вибрати наступний 1000тощо.


9

Здається, не існує встановленого числового обмеження, але існують обмежувальні заходи.

Для запобігання зловживанням (наприклад, надсилання потоку повідомлень на пристрій) та оптимізації загальної ефективності мережі та часу автономної роботи пристроїв, GCM реалізує дроселювання повідомлень за допомогою схеми сегментованого маркера.

Якщо ключ згортання програми вичерпує запас доступних токенів, нові повідомлення буферизуються в очікувальній черзі, поки нові маркери не стануть доступними на момент періодичного надання.

Через: https://developers.google.com/cloud-messaging/server#throttling

Редагування / оновлення:

Тільки для оновлення, документ для регулювання можна зараз знайти в Додаткових темах GCM: http://www.androiddocs.com/google/gcm/adv.html#throttling


1
Я просто помітив, коли більше дивився на доданий мною сайт. Я не зовсім впевнений, що androiddocs.com є офіційною документацією Google. @boltup_im_coding - Буду вдячний, якщо ви можете додати примітку про це. :)
AL.

8

Існує НЕ будь-який денний ліміт на кількість push-повідомлень (GCM), але через офіційні джерела GCM Advanced Topics він стверджує, що

Існує обмеження кількості повідомлень, які можна зберігати, не згортаючи. На даний момент цей ліміт становить 100. Якщо ліміт досягнуто, усі збережені повідомлення відкидаються. Потім, коли пристрій знову в мережі, він отримує спеціальне повідомлення про те, що ліміт досягнутий. Потім програма може впоратись із ситуацією належним чином, як правило, запитуючи повну синхронізацію.

Сподіваюся, це допоможе.


Ви можете мені допомогти?, См stackoverflow.com/questions/34826165 / ...
Ghanbari

@Bhavesh Посилання не знайдено
Пратік Бутані

4

Спробував надіслати понад 1000 натискань з коду Java com.google.android.gcm.server. Відправте метод "надіслати", спроба не вдається.

https://developers.google.com/cloud-messaging/http-server-ref Для низових повідомлень HTTP (JSON):

ім'я параметра - тип реєстраційних_ід - масив рядків

Цей параметр визначає список пристроїв (маркери реєстрації або ідентифікатори), які отримують багатоадресне повідомлення. Він повинен містити принаймні 1 та максимум 1000 реєстраційних токенів.

Використовуйте цей параметр лише для багатоадресних повідомлень, а не для одержувачів. Багатоадресні повідомлення (надсилання більш ніж на 1 маркери реєстрації) дозволяються лише у форматі HTTP JSON.


1
По-перше, ласкаво просимо до спільноти :) На це питання вже є кілька високоякісних відповідей, більшість з яких були розміщені три роки тому, коли було задано питання. Хоча спроба відповісти на прості запитання, як-от це, може бути корисною вправою для подальшого розвитку ваших можливостей програмування, опублікування цієї відповіді у поточному стані нічого не додає до питання.
MTCoster


1

Ви можете надіслати не більше 1000 пристроїв за SEND_ID!

Ось першоджерело.


1
Це зовсім не те, про що говорить це джерело.

1
ROTFL ... наслідком цього джерела є максимум 1000 за один раз
humblerookie

Джерело не знайдено, змінити посилання.
Пратік Бутані

Як ми можемо тоді його збільшити? @PratikButani
Tyagi

1

registration_ids
Цей параметр визначає список пристроїв (маркери реєстрації або ідентифікатори), які отримують багатоадресне повідомлення. Він повинен містити принаймні 1 та максимум 1000 реєстраційних токенів.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.