2016-05-30 14 views
2

Ich habe Java-Server-Anwendung. Und ich muss eine Menge von Google Mail-Konten überwachen, um Push-Benachrichtigungen an mobile Geräte über neue Posteingang-Nachrichten senden zu können. Ich muss die E-Mail-Adresse des Absenders und die Nachricht wissen, die eine Push-Benachrichtigung senden soll.Wie erhalten Sie neue Nachrichtendetails über Gmail Push-Benachrichtigungen?

Und ich versuchte Gmail push notifications System (webhooks Option) Wenn ich alles richtig verstanden, um für jeden Benutzer benötigte Informationen für jede neue Nachricht zu bekommen gibt es eine folgende Szenario:

  • Google schickt mir E-Mail und Verlaufs-ID über https Anfrage.
  • Ich nenne history API und neuen Nachrichten-IDs für Benutzer
  • I request message info von Nachrichten-ID

Das bekomme bedeutet, dass ich für jede neue Nachricht jeden Benutzers 2 zusätzliche Anforderungen benötigen. Und es sieht ziemlich hart aus, wenn der Server jede Sekunde mehrere neue Nachrichten verarbeiten muss. Und ich sehe immer noch nicht anders.

Gibt es eine Möglichkeit, es kürzer zu machen? (z. B. um mir zu ermöglichen, dass Google mir nicht nur eine Historien-ID sendet, sondern auch neue Nachrichtendetails benötigt oder zumindest eine zusätzliche Anfrage, aber keine zwei)

Vielen Dank!

Antwort

0

Wir haben versucht, Push-Benachrichtigungen zu verwenden, aber die Menge der generierten Anfragen führte dazu, dass wir stattdessen zeitgesteuert abstimmen. Es ist erwähnenswert, dass Sie Push-Benachrichtigungen für jede Änderung an der Nachricht erhalten, wie eine Etikettenänderung, eine Änderung des Lesestatus usw. Wie Sie sagen, gibt es viele Anfragen.

Wenn Sie die Benachrichtigungen in Echtzeit benötigen, sehe ich nicht, wie Sie den von Ihnen beschriebenen Prozess vermeiden können.

Wenn Sie es nicht in Echtzeit benötigen, können Sie zeitgesteuert nach Push-Benachrichtigungen pro Konto suchen oder zumindest überprüfen und, wenn einige eingegangen sind, neue Nachrichten in einem Batch statt einer einzelnen Anfrage abrufen .

+0

Danke! Ich brauche Echtzeitbenachrichtigungen, also denke ich, dass die Umfrage nicht mein Fall ist. Derzeit verwende ich IMAP IDLE für Benachrichtigungen, aber es ist ziemlich schwer zu pflegen. Ich brauche Tausende von Live-IMAP-Verbindungen, die eine riesige Menge an Speicher verbrauchen und ziemlich instabil sind. –

+1

Auch bei Tausenden von Benutzern wird der neue Push-Ansatz eine Verbesserung sein. Sie können die Push-Benachrichtigungen auch nach Label wie ["INBOX"] filtern, wenn dies zu Ihrem Anwendungsfall passt, um einen Teil der Last zu reduzieren. – PNC