J'ai récemment appris sur la capacité des applications iPhone à recevoir des notifications presque instantanées aux applications des notifications aux applications .
Cela est fourni sous la forme de notifications push, un protocole sur mesure qui maintient une connexion de données toujours active avec l'iPhone et envoie des paquets binaires à l'application, qui affiche des alertes incroyablement rapidement, entre 0,5 et 5 secondes entre l'application serveur et l'envoi vers l'application téléphonique. Temps de réponse. Ceci est envoyé sous forme de données - plutôt que SMS - dans de très très petits paquets facturés dans le cadre du plan de données et non sous forme de messages entrants.
Je voudrais savoir si, en utilisant Android, il existe une installation similaire ou s'il est possible d'implémenter quelque chose de proche de cela en utilisant des API Android. Pour clarifier, je définis comme similaire:
- Pas un SMS, mais une solution basée sur les données
- Aussi en temps réel que possible
- Est évolutif, c'est-à-dire que, en tant que partie serveur d'une application mobile, je pourrais notifier des milliers d'instances d'application en quelques secondes
J'apprécie que l'application puisse être basée sur le style de requête / réponse HTTP, mais dans l'idéal, je ne veux pas interroger autant pour vérifier les notifications; en plus de cela, c'est comme égoutter le plan de données.
la source
Réponses:
La FAQ FCM de Firebase Cloud Messaging est la nouvelle version de GCM. Il hérite de l'infrastructure de base de GCM pour délivrer des messages de manière fiable sur Android, iOS et Chrome. Cependant, ils continueront à prendre en charge GCM car de nombreux développeurs utilisent aujourd'hui les SDK GCM pour gérer les notifications, et la mise à niveau de l'application cliente prend du temps.
Depuis le 26 juin 2012, Google Cloud Messaging est le moyen préféré d'envoyer des messages aux applications exécutées sur les appareils.
Auparavant (et maintenant obsolète), le service s'appelait Cloud To Device Messaging .
la source
XMPP est une bonne solution. Je l'ai utilisé pour une application Android en temps réel activée par push. XMPP est puissant, hautement extensible et facile à intégrer et à utiliser.
Il y a beaucoup de serveurs XMPP gratuits (bien que par courtoisie vous ne devriez pas en abuser) et il y a des serveurs open source que vous pouvez exécuter sur l'une de vos propres boîtes. OpenFire est un excellent choix.
La bibliothèque que vous voulez n'est pas Smack comme indiqué ci-dessus, c'est aSmack . Mais notez que c'est un environnement de construction - vous devrez construire la bibliothèque.
Voici un calcul que j'ai fait sur l'impact sur la vie de la batterie d'une solution XMPP:
la source
J'ai récemment commencé à jouer avec MQTT http://mqtt.org pour Android comme un moyen de faire ce que vous demandez (c'est-à-dire non pas SMS mais piloté par les données, livraison de messages presque immédiate, évolutive, pas de sondage, etc.)
J'ai un article de blog avec des informations générales à ce sujet au cas où cela serait utile http://dalelane.co.uk/blog/?p=938
(Remarque: MQTT est une technologie IBM, et je dois souligner que je travaille pour IBM.)
la source
Jetez un œil à la plateforme Xtify . On dirait que c'est ce qu'ils font,
la source
Google déprécie le C2DM, mais à sa place, leur introduction GCM (Google Cloud Messaging), je ne pense pas que le leur soit un quota et gratuit! Il nécessite cependant Android 2.2+! http://developer.android.com/guide/google/gcm/index.html
la source
Si vous pouvez compter sur les bibliothèques Google pour votre marché cible, vous pouvez alors utiliser la fonctionnalité GTalk (enregistrer une ressource sur le nom d'utilisateur existant - l'intercepter les messages lorsqu'ils arrivent avec un BroadcastReceiver).
Si ce n'est pas le cas, et je suppose que vous ne pouvez pas , alors vous êtes en train de regrouper vos propres versions de XMPP . C'est un problème, mais cela peut être facilité si XMPP est fourni séparément en tant que bibliothèque autonome.
Vous pouvez également envisager PubSubHubub , mais je n'ai aucune idée de l'utilisation du réseau. Je crois qu'il est construit au sommet de XMPP.
la source
J'ai étudié cela et PubSubHubBub recommandé par jamesh n'est pas une option. PubSubHubBub est destiné aux communications de serveur à serveur
J'en suis venu à la conclusion que la méthode la plus simple consiste à utiliser Comet HTTP push. Il s'agit à la fois d'une solution simple et bien comprise, mais elle peut également être réutilisée pour des applications Web.
la source
Il y a un nouvel effort open source pour développer une bibliothèque Java pour les notifications push sur Android, en utilisant le serveur comète Meteor comme backend. Vous pouvez le vérifier sur le blog du projet Deacon . Nous avons besoin de développeurs, alors faites passer le mot!
la source
Google a récemment (18 mai 2016) annoncé que Firebase est désormais sa plate-forme unifiée pour les développeurs mobiles, y compris les notifications push en temps quasi réel.Il est également multi-plateforme:
la source
la source
Je ne trouve pas où je l'ai lu, mais je pense que gmail utilise une connexion TCP ouverte pour envoyer les e-mails.
la source
Comme
GTalk
pour le SDK, il peut être judicieux de créer un système de messagerie push «standard». De cette façon, un seul service doit s'exécuter, une seule connexion TCP supplémentaire doit être ouverte. Les applications doivent parler à ce service en utilisantIntents
et doivent d'abord demander l'autorisation d'envoyer et de recevoir une notification du service. Le service doit alors informer l'utilisateur qu'une nouvelle application souhaite envoyer et recevoir des messages. L'utilisateur accordera ou refusera ensuite l'autorisation, afin de garder le contrôle. L'application enregistrera ensuite une catégorie action + au service, afin que le service sache comment délivrer le message poussé.Serait-ce une bonne idée ou non?
la source
Pourquoi ne pas aller avec l'implémentation XMPP. en ce moment, il y a tellement de serveurs publics disponibles, y compris gtalk, jabber, citadel etc. Pour Android, il existe un SDK nommé SMACK. Cela, nous ne pouvons pas dire une notification push, mais en utilisant le XMPP, vous pouvez garder une connexion ouverte entre le client et le serveur qui permettra une communication bidirectionnelle. Signifie que le client et le serveur Android peuvent tous deux communiquer entre eux. À l'heure actuelle, cela répondra aux besoins de Push dans Android. J'ai implémenté un exemple de code et cela fonctionne vraiment bien
la source
J'ai récemment développé http://pushdroid.org une application unique qui devrait être installée sur le téléphone, tout comme google l'a implémentée en 2.2, cela fonctionne à partir de 1.5 et diffuse via l'intention.
la source
Le problème avec GCM est qu'il y a beaucoup de configuration impliquée dans le processus:
Si vous aimez les choses simples (comme moi), vous devriez essayer UrbanAirship . C'est (à mon humble avis) la façon la plus simple d'utiliser GCM dans votre application sans faire beaucoup de configuration. Il vous donne également une jolie interface graphique pour tester que vos messages GCM sont livrés correctement.
Remarque: je ne suis d'aucune façon affilié à UrbanAirship
la source
https://github.com/Guti/Google-Cloud-Messaging--Titanium-/blob/master/src/com/google/android/gcm/GCMRegistrar.java
Sa solution vraiment bonne et fonctionnelle pour pousser.
Essayez-le
la source
Ils ont leurs écouteurs que vous devez utiliser en utilisant leurs classes de bibliothèque dans votre code. Vous ne devez pas vous soucier de pousser. Vous devez envoyer le message au serveur serveur poussera le message vers l'appareil. Ils utilisent OAuth. Concernant les protocoles, il existe deux méthodes utilisant CCS et XMPP. CCS utilise simplement XMPP comme couche de transport authentifiée, vous pouvez donc utiliser la plupart des bibliothèques XMPP pour gérer la connexion. Pour envoyer des notifications à l'appareil, vous pouvez écrire du code dans l'application Android à envoyer ainsi que le code de votre serveur. l'envoi du message se fera uniquement par votre code. Le reste sera pris en charge par Google Server dans le cas GCM. Vous pouvez vérifier les détails sur ce lien
http://developer.android.com/google/gcm/server.html
Aussi, pour des problèmes de sécurité
sécurité de la messagerie google cloud https://groups.google.com/forum/#!topic/android-gcm/M-EevBitbhQ
Si votre application ne fonctionne pas, les appareils peuvent également recevoir une notification, car vous devez écrire du code pour les auditeurs de diffusion. En arrière-plan, il écoutera le serveur et chaque fois qu'un paquet de messages sera là, il recevra le message comme notification. Android a le service dont vous avez besoin pour ne pas vous en soucier. Vous n'avez qu'à utiliser ces ressources en utilisant la classe de bibliothèque qui facilite votre travail et à les laisser écrire si votre application n'est pas en cours d'exécution, elle reçoit également une notification. De toute évidence, il y aurait un auditeur qui ferait l'appli pour recevoir.Vérifiez la section "Recevoir le message" dans ce lien
http://developer.android.com/google/gcm/client.html
Il acceptera également les demandes des utilisateurs. Pour GCM, cela suffira. Veuillez cocher "Envoyer un message"
http://developer.android.com/google/gcm/client.html
la source