Présentation

Effectué

En tant qu’ingénieur chez Tailwind Traders, vous avez appris que votre entreprise prévoit de lancer un nouveau site web qui fournit des informations boursières aux clients. Récemment, un stagiaire a créé un prototype de site web pour la nouvelle application et l’architecte en chef vous demande maintenant d’intervenir pour améliorer la solution. Votre objectif est de mettre à jour l’application pour implémenter les mises à jour automatiques des informations de cours des actions, mais en veillant à ce que la communication entre le client et le serveur se produise uniquement quand les données changent sur le serveur.

Architecture du prototype

Le prototype de serveur a 2 fonctions :

Nom de la fonction Type de déclencheur Description
getStocks Azure Cosmos DB Le serveur est chargé de lire toutes les données de la table d’actions dans la base de données et de retourner ces données dans une réponse HTTP chaque fois que le client le demande.
setPrice Minuteur Une fonction permettant de modifier les données de la base de données s’exécute sur un déclencheur de minuteur. Cela simule la réception des modifications d’un système principal.

En tant que prototype, le stagiaire a simulé le flux d’actions avec une fonction de minuteur, qui se met à jour toutes les minutes. Le site web client demande toutes les actions du point de terminaison de l’API /api/getStocks toutes les 5 secondes afin d’essayer d’afficher des données en quasi-temps réel. Cette demande cliente n’est pas efficace. Au lieu d’extraire les données du serveur, il est plus efficace que le serveur envoie (push) les nouvelles informations sur les actions.

Tâches à effectuer

Dans ce module, vous allez découvrir les points suivants :

  • Exécuter le prototype : Afficher l’application cliente, qui interroge le serveur pour toutes les actions à intervalles réguliers
  • Améliorer l’application : Implémenter une application Azure Functions serverless pour diffuser les modifications apportées aux clients connectés à l’aide de SignalR Service pour fournir des mises à jour en quasi-temps réel.
  • Mettre à jour l’application web JavaScript cliente pour se connecter à SignalR et obtenir et afficher les messages.