Ist es gut, nur GCM für die Entwicklung von Chat-Anwendungen für Android XMPP zu verwenden?

8

Viele Anwendungen wie WhatsApp verlassen sich auf GCM , um Benachrichtigungen an das Gerät zu senden, wenn sich das Gerät im Leerlauf befindet oder die App im Hintergrund ausgeführt wird. Die Nachricht GCM teilt der App nur mit, dass sie vom Server synchronisiert wird, und dann wird XMPP verwendet, um den eigentlichen Chat auszuführen (die Payload wird bereitgestellt). Aber ist es eine gute Entscheidung, sich auf GCM zu verlassen, um Nachrichten zu senden? In meinem Fall, wenn ein Benutzer mit einem anderen Benutzer sprechen möchte, sendet er meinem Server eine Nachricht, und dann übertrage ich die Nachricht über GCM an den anderen Benutzer. Ich verstehe GCM ist nicht 100% zuverlässig, aber ich kann Zuverlässigkeit durch Timeouts und Bestätigungsmeldungen sicherstellen. Gibt es noch etwas anderes, das mich verletzen könnte, wenn ich komplett mit GCM gehe? Der Grund dafür, nicht mit XMPP zu gehen, ist, dass es sehr mühsam sein wird, einen XMPP Server zu skalieren (was mir nicht sehr vertraut ist), aber im Falle von GCM werden viele Skalierungsprobleme berücksichtigt von Google.

    
lovesh 19.05.2013, 16:58
quelle

1 Antwort

2

Ich verwende GCM, um den Client auf eine Verbindung hinzuweisen. Wenn Sie sich nur auf GCM verlassen, um die Payload auszuliefern, können Sie die Zustellung von Nachrichten nicht so einfach verfolgen.

Zum Beispiel verwende ich eine sehr grundlegende Form der Stream-Verwaltung in meiner App, also bevorzuge ich es, es nur auf ein Synchronisierungs-Dienstprogramm zu beschränken und meinen Client / Server direkt zu kommunizieren.

Es ist auch nicht erweiterbar, obwohl Sie wahrscheinlich das XML in den Nachrichtentext einfügen und das analysieren könnten.

Ich bin nicht sicher, was die Garantie für die Lieferung ist, aber ich würde das auch auf der Google-Seite überprüfen und wenn Sie es verwenden, um mehrere Nachrichten zu liefern, müssen Sie sicherstellen, dass Sie die Funktion collapse_key in integrieren Ihr Kunde, weil GCM Ihre Nachrichten in einem konsolidiert, wenn es eine Verzögerung beim Senden gibt, wenn Sie ein hohes Volumen verwenden.

Eine andere Sache, bei der ich mich nicht sicher bin, ob GCM in Echtzeit funktioniert, also bin ich mir nicht sicher, wie toll es für eine echte Chat-ähnliche Anwendung wäre.

Ich würde diese Dinge vor der Verwendung von GCM für die Payload-Lieferung in Betracht ziehen.

    
James W 06.08.2013 06:58
quelle