Bonjour,

Je souhaiterais créer une application en relation avec mon site web.
Cette application aurait pour but d'informer en temps réel les utilisateurs quand une nouveauté est postée.
Avant de me lancer dans le développement de cette application je dois réfléchir à un certain nombre de choses.
C'est pour cela que je viens vers vous pour savoir selon vous quelle est la meilleure méthode pour effectuer ces "notifications" en temps réel.

Dans le cas d'une application bureau, j'avais pensé dans un premier lieu à l'utilisation des sockets. Le client serait connecté à un serveur, lorsqu'une news est posté sur le site on informe le serveur et ce serveur envoie à tous les clients connectés une notification.

Dans le cas d'une application android, je me demande si la solution des sockets est viable ou alors faire quelque chose du genre "check toutes les x secondes/minutes s'il y a des nouveautés sur un fichier xml, rss, ou autres dans le genre.

Voilà j’espère avoir réussi à exposer mon problème.
En attente de vos réponses.

Cordialement Reiku.

3 réponses


Pakito
Réponse acceptée

Sur mobile, ce qui se fait beaucoup, c'est :

  • des requêtes sur un socket quand l'application est ouverte (donc au premier plan, active), et à ce moment là on a l'information en temps direct
  • les notifications push système quand l'application est en tâche de fond

En plus, cela offre l'avantage de permettre à tes utilisateurs une configuration avancée des notifications, au moins sur iOS en tout cas, en personnalisant l'affichage, le comportement (son, vibration), les notifications que l'on souhaite ou non (par exemple dans le cas d'un forum, recevoir une notification quand une réponse à un sujet que j'ai créé et postée, mais pas quand j'ai simplement participé à ce sujet), etc.

Les OS sont aujourd'hui paré à ça et encaissent très bien les systèmes de notifications, que ce soit sur iOS ou Android.
Sur Windows Phone, c'est un peu plus compliqué : pour avoir de vraies notifications, il faut obligatoirement un serveur Microsoft Azur (à moins que cela ait changé depuis quelques mois). Mais il est possible de configurer ce qu'ils appellent un "agent" dans l'application : c'est en fait un bout de code qui va effectuer à intervalle régulier un appel à une URL, comme on le ferait sur un script en Ajax. Mais sincèrement, pour l'avoir mis en place sur plusieurs gros projets avec plusieurs dizaines de milliers d'utilisateurs, c'est pas hyper gourmand en ressources avec un bonne API bien foutu et qui renvoi un JSON compressé.

Voila !

WebSocket ! :D
Jamais utilisé mais apparemment pour le temps réél c'est ce qui se fait de mieux.

Le problème avec la solution de "je check toutes les x secondes", c'est que ça va être de l'ajax (y'a pas 15 000 solutions pour faire ça).
Immagines rien que 100 personnes qui font des requêtes ajax toutes les secondes pour mettre à jour (j'ai déjà testé et ça fait déjà pas mal de charge)

Reiku
Auteur

Je vois ^^
Pour ce qui est de l'application bureau cela ne me pose pas de problème d'utiliser les sockets, mais pour ce qui est de l'application android je me demande si au niveau consommation d’énergie avoir une appli qui tourne en tâche de fond c'est pas top...