Frage

Ich habe gelernt, vor kurzem über die Fähigkeit von iPhone-Apps nahezu verzögerungs zu erhalten Benachrichtigungen an Apps Benachrichtigungen an Apps .

Dies wird in Form von Push-Benachrichtigungen zur Verfügung gestellt, ein maßgeschneiderten Protokoll, das ein immer auf Datenverbindung zu den iPhone und Nachrichten binären Pakete an die App hält, die Warnungen erscheint unglaublich schnell, zwischen 0,5 - 5 Sekunden vom Server App Handy-App Antwortzeit senden. Dies wird als Daten gesendet - anstatt SMS - in sehr, sehr kleinen Paketen berechnet als Teil der Daten plant nicht als eingehende Nachrichten.

Ich möchte, wenn wissen, Android verwenden, gibt es entweder eine ähnliche Anlage, oder ob es möglich ist etwas in der Nähe dieser mit Android-APIs zu implementieren. Um zu klären, definiere ich ähnlich wie:

  • Nicht eine SMS-Nachricht, aber einige Daten getrieben Lösung
  • Wie Echtzeit wie möglich
  • ist skalierbar, das heißt, wie der Server Teil einer mobilen App, ich Tausende von App-Instanzen in Sekunden benachrichtigen könnte

schätze ich die App basiert, HTTP Request / Response-Stil werden ziehen könnte, sondern im Idealfall möchte ich nicht Polling sein, die nur schwer für die Benachrichtigung zu überprüfen; Neben dem ist es wie Tropf der Daten Plan abzulassen.

War es hilfreich?

Lösung

Firebase Cloud Messaging FCM FAQ ist die neue Version von GCM. Sie erbt Kern-Infrastruktur des GCM-Nachrichten liefern zuverlässig auf Android, iOS und Chrome. sie werden jedoch weiterhin GCM unterstützen, weil viele Entwickler heute GCM SDKs verwenden Benachrichtigungen zu handhaben, und Client-Anwendung Upgrade dauert seine Zeit.

Ab dem 26. Juni 2012 Google Cloud Messaging ist die bevorzugte Art von Nachrichten an Anwendungen auf Geräte zu senden.

Früher (und jetzt veraltet), wurde der Dienst Cloud-To Device Messaging genannt.

Andere Tipps

XMPP ist eine gute Lösung. Ich habe es für einen Push aktiviert ist, in Echtzeit, Android-Anwendung verwendet. XMPP ist mächtig, stark dehnbar und einfach zu integrieren und zu nutzen.

Es gibt jede Menge kostenlosen XMPP-Servers (wenn auch mit freundlicher Genehmigung aus Sie sollten sie nicht missbrauchen) und es gibt Open-Source-Server, die Sie auf einem Ihrer eigenen Box laufen können. Openfire ist eine ausgezeichnete Wahl.

Die Bibliothek, die Sie wollen, ist nicht Smack , wie oben erwähnt, ist es aSmack . Aber beachten Sie, das ist ein Build-Umgebung -. Sie müssen die Bibliothek bauen

Dies ist eine Berechnung ich beim Aufprall Akkulaufzeit hat eine XMPP-Lösung:

  

Das Android-Client muss eine persistente TCP-Verbindung aufrechterhalten periodisch aufwacht   einen Herzschlag an den XMPP-Server zu senden.
  Dies stellt eindeutig eine Kosten in Bezug auf den Energieverbrauch. Eine Schätzung dieser Kosten ist   bereitgestellt unter:

     
      
  • Mit einem 1400mAh Akku
  • (wie im Nexus One und HTC Desire im Lieferumfang enthalten)   
  • Eine Leerlaufvorrichtung, die mit einem 3G-Netz, verwendet etwa 5 mA
  •   
  • Das Wake-up, Herzschlag, Schlaf-Zyklus alle 5 Minuten auftritt, dauert 3 Sekunden   zu vervollständigen und verwendet 300mA
  •   
  • Die Kosten der Batterieverbrauch pro Stunde ist daher:   
        
    • 36 Sekunden 300mA = 3mAh Senden Herzschlag
    •   
    • 3600 Sekunden 5 mA = 5MAH im Leerlauf
    •   
    • 4:95 + 3 = 7: 95mAh kombiniert
    •   
  •   
  • Ein 1400mAh Akku hält ca. 11,6 Tage im Leerlauf und 7,3 Tage bei   Ausführen der Anwendung, die in eine ungefähre 37% ige Reduktion darstellt   Lebensdauer der Batterie.
  •   
  • stellt jedoch eine Verringerung der Batterielebensdauer von 37% der absolute worst case   in der Praxis gegeben, dass die Geräte nur selten völlig frei sind.
  •   

Ich begann vor kurzem spielen mit MQTT http://mqtt.org für Android als eine Möglichkeit zu tun, was du bist Bitte um (dh nicht SMS, aber Daten getrieben, fast sofortige Nachrichtenübermittlung, skalierbare, nicht abfragen, etc.)

Ich habe eine Blog-Post mit Hintergrundinformationen zu diesem Thema in Fall ist es hilfreich http: // dalelane .co.uk / blog /? p = 938

(Anmerkung:. MQTT ist eine IBM-Technologie, und ich möchte darauf hinweisen, dass ich für IBM arbeiten)

Haben Sie einen Blick auf die Xtify Plattform. Sieht aus wie das ist, was sie tun,

Google Abwertung C2DM, sondern an ihrer Stelle ihre Einführung GCM (Google Cloud Messaging) Ich glaube nicht, ihre Kontingentierung und es ist kostenlos! Es erfordert allerdings Android 2.2+! http://developer.android.com/guide/google/gcm/index.html

Wenn Sie auf die Google-Bibliotheken dort abhängen kann ist für Sie Markt anvisieren, dann können Sie auf Huckepack auf GTalk Funktionalität (eine Ressource auf dem bestehenden Benutzernamen Registrierung - das Abfangen es die Nachrichten als sie kommen mit einem BroadcastReceiver).

Wenn nicht, und ich erwarte, dass Sie nicht können, dann sind Sie in Ihre eigenen Versionen von XMPP Bündelung . Dies ist ein Schmerz, aber kann erleichtert werden, wenn XMPP separat als eigenständige Bibliothek gebündelt wird.

Sie können auch PubSubHubub betrachten, aber ich habe keine Ahnung, die Netzwerknutzung davon . Ich glaube, es oben auf der XMPP gebaut wird.

Ich habe in diesem und Pubsubhubbub von jamesh empfohlen suchen, ist keine Option. Pubsubhubbub ist für den Server zu Server-Kommunikation

  
    

„Ich bin hinter einem NAT. Kann ich einen Hub abonnieren? Die Nabe mir nicht verbinden kann.“

         

/ Anonymous

  
     

Nein, PSHB ein Server-zu-Server   Protokoll. Wenn Sie sich hinter NAT sind, bist du   nicht wirklich ein Server. Während wir haben   um Ideen für optionale PSHB getreten   Erweiterungen hängen zu tun bekommt ( "long   Polling ") und / oder messagebox Polling   für solche Kunden, ist es nicht im Kern   spec. Die Kern-Spezifikation ist   Server-zu-Server nur.

     

/ Brad Fitzpatrick, San Francisco, CA

     

Quelle: http://moderator.appspot.com/#15/ e = 43e1a & t = 426ac & f = b0c2d (direkter Link nicht möglich)

Ich bin zu dem Schluss gekommen, dass die einfachste Methode ist Comet HTTP Push zu nutzen. Dies ist sowohl eine einfache und gut verstanden Lösung, aber es kann auch für Web-Anwendungen wiederverwendet werden.

Es gibt eine neue Open-Source-Bemühungen um eine Java-Bibliothek für Push-Benachrichtigungen auf Android, mit dem Meteor Comet-Server als Backend zu entwickeln. Sie können es rel="noreferrer"> Deacon Projekt Blog unter

Ich kann nicht finden, wo ich es gelesen, aber ich glaube, gmail nutzt eine offene TCP-Verbindung die E-Mail-Push zu tun.

Wie GTalk aus dem SDK gegangen ist, könnte es eine gute Idee, ein ‚Standard‘ Push-Messaging-System zu machen. Auf diese Weise nur ein Service, nur eine zusätzliche TCP-Verbindung muss offen sein laufen. Anwendungen sollten auf diesen Dienst mit Intents sprechen und sollen zuerst die Erlaubnis anfordern Benachrichtigung von dem Dienst zu senden und zu empfangen. Der Dienst sollte dann den Benutzer benachrichtigt eine neue Anwendung wünscht, Nachrichten zu senden und empfangen. Der Benutzer wird dann erteilen oder die Erlaubnis verweigern, so bleibt er in der Steuerung. Die Anwendung wird dann eine Aktion + Kategorie an den Dienst registrieren lassen, so dass der Dienst weiß, wie die geschoben Nachricht zuzustellen.

Würde der eine gute Idee oder nicht?

Warum müssen Sie nicht mit der XMPP Umsetzung gehen. Im Augenblick gibt es so viele öffentliche Server zur Verfügung, einschließlich gtalk, Jabber, Zitadelle etc. Für Android gibt es ein SDK auch als SMACK genannt verfügbar ist. Dies kann nicht wir eine Push-Benachrichtigung sagen, aber die XMPP verwenden Sie eine Verbindung geöffnet zwischen Client und Server halten, die einer Zwei-Wege-Kommunikation ermöglicht. Bedeutet Android Client und Server beide miteinander kommunizieren können. Derzeit wird dies die Notwendigkeit von Push-in android erfüllen. Ich habe einen Beispielcode implementiert und es funktioniert wirklich toll

Ich habe vor kurzem entwickelt http://pushdroid.org seine eine einzige Anwendung, die nur auf dem Handy installiert werden soll, wie google hat es in 2.2 implementiert das funktioniert von 1,5 und über Absicht senden.

Google hat vor kurzem (18May2016) angekündigt dass Firebase ist jetzt ist es einheitliche Plattform für mobile Entwickler, einschließlich in der Nähe von Push notifications.It Echtzeit ist auch Multi-Plattform:

  

Das Unternehmen bietet jetzt alle Nutzer frei Firebase und unbegrenzt   mit Unterstützung von Benachrichtigungen für iOS, Android und das Web.

Quelle

Das Problem mit GCM ist, dass es eine Menge Konfiguration an dem Prozess beteiligt ist:

  • Sie haben eine Menge von vorformulierten Sie Android App
  • hinzufügen
  • Sie benötigen einen externen Server konfigurieren, um mit dem GCM-Server
  • comunicate
  • Sie müssen Tests schreiben

Wenn Sie einfache Dinge wie (wie ich) sollten Sie versuchen, UrbanAirship . Es ist (IMHO) der einfachste Weg, GCM in Ihrer Anwendung zu verwenden, ohne viel Konfiguration zu tun. Es gibt Ihnen auch eine hübsche GUI zu testen, ob Ihre GCM Nachrichten korrekt geliefert werden.

  • Sie können die Dokumentation finden und immer Führer hier
  • gestartet
  • Sie können eine Beispielanwendung hier finden

Hinweis: Ich bin nicht mit UrbanAirship in irgendeiner Weise afiliated

Sie haben ihre Zuhörer, die von Ihnen verwendet werden muss durch ihre Bibliotheksklassen in Ihrem Code verwenden. Sie brauchen sich nicht zu drängen zu stören. Sie haben die Nachricht an Server-Server senden wird die Nachricht an das Gerät schieben. Sie verwenden OAuth. In Bezug auf Protokolle, gibt es zwei Methoden CCS und XMPP verwenden. CCS verwendet nur XMPP als authentifizierter Transportschicht, so dass Sie die meisten XMPP-Bibliotheken verwenden können, um die Verbindung zu verwalten. Um Benachrichtigungen an Gerät senden können Sie Code in Android App schreiben sowie Ihre Server-Code zu senden. die Nachricht sendet, wird nur durch Ihren Code durchgeführt werden. Rest wird von Google Server in GCM Fall gesorgt werden. Sie können Detail an diesem Link

http://developer.android.com/google/gcm/server.html

Auch für Sicherheitsfragen

Google Cloud Messaging-Sicherheit https://groups.google. com / forum / #! Thema / android-gcm / M-EevBitbhQ

Falls Ihre App nicht läuft dann auch Geräte Mitteilung empfangen können, weil Sie Code für Broadcast-Hörer zu schreiben. Im Hintergrund wird es an dem Server horchen und sobald ein Nachrichtenpaket wird dort sein es wird die Nachricht als Benachrichtigung empfängt. Android hat Service, den Sie brauchen, um nicht daran zu stören. Sie haben nur die Ressourcen zu verwenden, um die Bibliothek-Klasse, die Ihre Arbeit erleichtert und lassen Sie sie schreiben, wenn die App nicht läuft dann auch Benachrichtigung empfangen. Offensichtlich würde es einige Zuhörer whick die App machen recieve.Check „Recieve die Meldung“ in diesem Link

http://developer.android.com/google/gcm/client.html

Es wird auch Anfrage von den Benutzern acccept. Für GCM wird es tun. Bitte klicken Sie auf „Senden Sie eine Nachricht“

http://developer.android.com/google/gcm/client.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top