Android Push Notification (GCM), gibt es ein Tageslimit?


Antworten:


83

Update: GCM ist veraltet, verwenden Sie FCM

Nachdem Google C2DM durch GCM ersetzt hatte, wurden alle Grenzen überschritten.

QUELLE: http://developer.android.com/google/gcm/c2dm.html#history

Vor GCM (als es noch C2DM hieß): https://developers.google.com/android/c2dm/#limitations )

Die einzigen Einschränkungen, auf die Sie in der GCM-Dokumentation stoßen, sind folgende: http://developer.android.com/google/gcm/adv.html#lifetime

Zitat aus dem obigen Link:

Hinweis: Die Anzahl der Nachrichten, die ohne Zusammenbruch gespeichert werden können, ist begrenzt. Dieses Limit beträgt derzeit 100. Wenn das Limit erreicht ist, werden alle gespeicherten Nachrichten verworfen. Wenn das Gerät wieder online ist, erhält es eine spezielle Meldung, dass das Limit erreicht wurde. Die Anwendung kann dann ordnungsgemäß mit der Situation umgehen, indem sie normalerweise eine vollständige Synchronisierung anfordert.

Ich bin mir jedoch nicht sicher, ob dies für Ihre Frage relevant ist.


Hinweis: 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....Das ist nur für einen bestimmten Benutzer, richtig? dh. Möglicherweise hat ein Benutzer sein Gerät für längere Zeit ausgeschaltet, sodass sich GCM-Nachrichten häufen und wenn kein Endpunkt vorhanden ist, zusammenbrechen. oder sind das 100 für ALLE Benutzer?
Sauron

4
@Sauron: Das ist pro Gerät.
Siddharth Lele

Wenn dies nicht richtig verstanden wird, enthält der Server die letzten 100, ältere Nachrichten werden verworfen. Wenn das Gerät online geschaltet wird, werden die neuesten 100 Nachrichten zusammen mit einer Nachricht über das erreichte Limit gesendet.
ir2pid

17

Es gibt eine limitvon 1000 notificationsan einem gehen.

Angenommen, Sie haben 50000 regids. Sie können nicht alle 50000zusammen senden . Nach dem ersten 1000müssen Sie den nächsten separat auswählen 1000und so weiter.


9

Es scheint nicht, dass es eine festgelegte numerische Grenze gibt, aber es gibt Drosselungsmaßnahmen.

Um Missbrauch zu verhindern (z. B. das Senden einer Flut von Nachrichten an ein Gerät) und die gesamte Netzwerkeffizienz und Akkulaufzeit von Geräten zu optimieren, implementiert GCM die Drosselung von Nachrichten mithilfe eines Token-Bucket-Schemas.

Wenn ein Anwendungskollapsschlüssel das Angebot an verfügbaren Token erschöpft, werden neue Nachrichten in einer ausstehenden Warteschlange gepuffert, bis zum Zeitpunkt der regelmäßigen Gewährung neue Token verfügbar werden.

Über: https://developers.google.com/cloud-messaging/server#throttling

Bearbeiten / Aktualisieren:

Nur zum Aktualisieren finden Sie das Dokument zum Drosseln jetzt in den erweiterten GCM-Themen: http://www.androiddocs.com/google/gcm/adv.html#throttling


1
Ich habe es gerade bemerkt, als ich mir die Seite angesehen habe, die ich hinzugefügt habe. Ich bin mir nicht ganz sicher, ob androiddocs.com eine offizielle Dokumentation von Google ist. @boltup_im_coding - Ich würde mich freuen, wenn Sie eine Notiz hinzufügen können, die dies sagt. :)
AL.

8

Es gibt KEIN tägliches Limit für Number Push Notifications (GCM), aber über Official Source GCM Advanced Topics heißt es

Die Anzahl der Nachrichten, die ohne Zusammenbruch gespeichert werden können, ist begrenzt. Dieses Limit beträgt derzeit 100. Wenn das Limit erreicht ist, werden alle gespeicherten Nachrichten verworfen. Wenn das Gerät wieder online ist, erhält es eine spezielle Meldung, dass das Limit erreicht wurde. Die Anwendung kann dann ordnungsgemäß mit der Situation umgehen, indem sie normalerweise eine vollständige Synchronisierung anfordert.

Hoffe es wird helfen.



@ Bhavesh Link nicht gefunden
Pratik Butani

4

Es wurde versucht, über 1000 Pushs vom Java-Code com.google.android.gcm.server.Sender "send" zu senden. Der Versuch schlägt fehl.

https://developers.google.com/cloud-messaging/http-server-ref Für Downstream-HTTP-Nachrichten (JSON):

Parametername - Typ der Registrierungs-IDs - String-Array

Dieser Parameter gibt eine Liste von Geräten (Registrierungstoken oder IDs) an, die eine Multicast-Nachricht empfangen. Es muss mindestens 1 und höchstens 1000 Registrierungstoken enthalten.

Verwenden Sie diesen Parameter nur für Multicast-Nachrichten, nicht für einzelne Empfänger. Multicast-Nachrichten (Senden an mehr als 1 Registrierungstoken) sind nur im HTTP-JSON-Format zulässig.


1
Zunächst einmal willkommen in der Community :) Es gibt bereits mehrere qualitativ hochwertige Antworten auf diese Frage, von denen die meisten vor drei Jahren veröffentlicht wurden, als die Frage gestellt wurde. Während es eine lohnende Übung sein kann, zu versuchen, einfache Fragen wie diese zu beantworten, um Ihre Programmierfähigkeiten zu verbessern, fügt das Posten dieser Antwort in ihrem aktuellen Zustand der Frage nichts hinzu.
MTCoster


1

Sie können maximal 1.000 Geräte pro SEND_ID senden!

Hier ist die Originalquelle.


1
Das sagt diese Quelle überhaupt nicht.

1
ROTFL ... die Implikation dieser Quelle ist maximal 1000 auf einmal
humblerookie

Quelle nicht gefunden, Link ändern.
Pratik Butani

Wie können wir es dann erhöhen? @PratikButani
Anshul Tyagi

1

register_ids
Dieser Parameter gibt eine Liste von Geräten (Registrierungstoken oder IDs) an, die eine Multicast-Nachricht empfangen. Es muss mindestens 1 und höchstens 1000 Registrierungstoken enthalten.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.