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 !