Bonjour bonjour !
Problématique
La ZEP-14 a soulevé la question du temps réel mais a rebroussé chemin au moment d'opter pour une technologie. De son côté, la ZEP-24 nécessitera à terme l'emploi de telles technologies, des notifications en temps réel étant fort appréciables.
J'ai donc commencé à recenser les technologies à notre disposition et ai fait part de mes réfléxions à Javier, lequel m'a judicieusement fait remarquer que je prenais les choses par le mauvais bout : plutôt que de réfléchir à une technologie, penchons-nous sur ce que nous souhaitons faire.
C'est donc l'objectif de ce sujet. Vous êtes invité à partager ici toutes vos idées d'évolutions pour le site faisant intervenir le temps réel. Alors, une fois que nous aurons un aperçu de ce que nous souhaitons globalement faire, nous pourrons opter pour la technologie adéquate.
Du temps réel ? Oui, mais où ça ?
Aperçu du message rédigé en temps réel (ZEP-14)
- Le client envoie son Markdown au serveur
- Le serveur le reçoit
- Le serveur convertit le Markdown en HTML
- Le serveur retourne le HTML au client
- Le client reçoit le HTML
- Le client affiche le HTML
Le tout sans recharger la page. C'est notamment ce que permet de faire AJAX : on parle de Remote Procedure Call (RPC).
Réception des notifications en temps réel (ZEP-24)
Cela implique d'indiquer en temps réel dans l'UI qu'un MP a été reçu, qu'un message a été posté dans un sujet suivi et autres joyeusetés prises en compte par la ZEP-24.
- Un client poste un message
- Le serveur reçoit la requête
- Le serveur stocke le message en base
- Le serveur enregistre les notifications générées
- Le serveur envoie une notification aux membres connectés
- Ces derniers reçoivent la notification, sans recharger la page
Cela implique pour le serveur de pouvoir faire du push, c'est-à-dire de pouvoir contacter certains clients de son plein gré (là où, dans le cas d'AJAX par exemple, il se contente de répondre à une requête). Il faut également identifier les clients en ligne concernés par cette notification.
Affichage des nouveaux messages lors de la lecture d'un sujet
Quand on envoie un message, on est parfois alerté qu'une personne a posté entre temps. Il pourrait être intéressant de l'être en temps réel, même si on ne rédige pas.
- Un client poste un message
- Le serveur reçoit la requête
- Le serveur stocke le message en base
- Le serveur indique à ceux consultant la page où le message va paraître que ce message est paru
- Le message est ajouté à la page consultée par ces personnes
Cela implique pour le serveur de pouvoir faire du push et d'identifier les personnes en train de consulter la page où sera ajouté le message.
De manière plus générale, le temps réel serait apprécié à chaque fois qu'il y a un phénomène de publication : nouveaux messages, nouveaux sujets, nouveaux contenus, etc.
Une application smartphone pour recevoir les notifications
A l'instar des notifications sur le site, on pourrait imaginer une application sur smartphone pour recevoir nos notifications en temps réel.
- Un client poste un message
- Le serveur reçoit la requête
- Le serveur stocke le message en base
- Le serveur enregistre les notifications générées
- Le serveur envoie une notification aux membres connectés
- Ces derniers reçoivent automatiquement la notification sur leur smartphone
Cela implique pour le serveur de pouvoir pousser de son plein gré une information vers une application autre que Web : Android, mais aussi de bureau par exemple.
À vous !
Ce ne sont que deux exemples d'évolutions faisant intervenir le temps réel. Je compte sur vous pour en proposer d'autres. Ne vous souciez pas de l'aspect technique : l'objectif est justement de le déterminer à partir des besoins que vous aurez exprimés.
Merci à vous et notamment à Javier pour ses retours sur ce message !