4 votes

Est-il possible de recevoir des requêtes Http de manière asynchrone sur Android ?

En gros, j'ai un serveur et application mobile . L'application mobile s'abonne aux événements de serveur . Le serveur publie ensuite, après un certain temps, les événements à tous les abonnés (ouaip, le bon vieux publier/s'abonner ).

Le fait est que le serveur utilise HTTP pour envoyer des notifications . J'ai donc besoin dans mon application de quelque chose comme un serveur HTTP pour traiter ces demandes de manière asynchrone (c'est-à-dire sans demande initiale spéciale).

Y a-t-il un service disponible ? Je pense créer un Socket et l'écouter, mais le problème de la conversion des données HTTP à partir du Socket se pose. J'ai déjà lire quelques questions sur StackOverflow mais aucun d'entre eux ne pointe directement le même problème. Ou ai-je manqué quelque chose ? Quoi qu'il en soit, toute aide est la bienvenue et appréciée.

3voto

Cristian Points 92147

C2D est bien... mais il est encore en phase bêta et vous devez accepter les CGU de Google. Je l'implémenterais moi-même en utilisant quelque chose comme MQTT... c'est assez facile à implémenter, rapide et vous contrôlez les données : http://tokudu.com/2010/how-to-implement-push-notifications-for-Android/

2voto

Robby Pond Points 37875

Vous devriez vous pencher sur Messagerie Cloud2Device . Je crois que c'est ainsi que fonctionne GTalk.

0voto

Matthew Willis Points 26453

Essayez cette réponse sur les notifications push via le Cadre de messagerie Android Cloud to Device .

Je ne pense pas que vous serez en mesure de recevoir des requêtes HTTP, ni même que votre téléphone aura une adresse IP stable.

0voto

Matt Points 1518

Il y a deux options pour gérer les connexions en arrière-plan...

AsyncTask et Service.

Un service fonctionne comme la réception d'un message texte (pas d'interrogation constante nécessaire), alors que l'AsyncTask serait constamment en interrogation.

Je pense que l'utilisation d'un service est la meilleure solution, pour autant que vous ne soyez pas préoccupé par les performances. Je pense qu'il peut y avoir un délai de quelques secondes lorsque l'utilisateur reçoit les notifications par le biais d'un service.

Une AsyncTask est certainement plus gourmande en batterie, mais elle sera probablement plus rapide et plus fiable.

0voto

Rafael Roman Points 504

Vous pouvez utiliser les notifications PUSH ou lancer un serveur JETTY sur votre Android.

J'ai une application qui fonctionne tout à fait de la même manière, en faisant tourner un serveur JETTY sur Android.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X