Introductie

Voltooid

Als technicus bij Tailwind Traders hebt u geleerd dat uw bedrijf van plan is om een nieuwe website te lanceren die informatie over aandelenprijzen aan klanten biedt. Onlangs heeft een stagiair een websiteprotototype voor de nieuwe toepassing gemaakt en de leadarchitect heeft u nu gevraagd om in te stappen en de oplossing te verbeteren. Het doel is om de app bij te werken voor het implementeren van automatische updates van de informatie over de aandelenkoers, maar ervoor te zorgen dat de communicatie tussen de client en server alleen plaatsvindt wanneer gegevens op de server worden gewijzigd.

Prototypearchitectuur

Het serverprototype heeft twee functies:

Functienaam Triggertype Beschrijving
getStocks Azure Cosmos DB De server is verantwoordelijk voor het lezen van alle gegevens uit de tabel aandelen in de database en het retourneren van die gegevens in een HTTP-antwoord wanneer de client deze aanvraagt.
setPrice Tijdklok Een functie om de gegevens in de database te wijzigen, wordt uitgevoerd op een timertrigger. Dit simuleert het ontvangen van wijzigingen van een back-endsysteem.

Als prototype heeft de intern de voorraadfeed gesimuleerd met een timerfunctie, die elke minuut wordt bijgewerkt. De clientwebsite vraagt om de vijf seconden alle aandelen van het /api/getStocks API-eindpunt aan in een poging om bijna realtime gegevens weer te geven. Deze clientaanvraag is niet efficiƫnt. In plaats van de gegevens van de server op te halen, is het efficiƫnter voor de server om nieuwe voorraadgegevens te pushen.

Taken die moeten worden uitgevoerd

In deze module gaat u het volgende doen:

  • Voer het prototype uit: Bekijk de clienttoepassing, die de server op een regelmatig interval controleert op alle aandelen
  • De applicatie verbeteren: Implementeer een serverloze Azure Functions-app om met behulp van SignalR Service bijna realtime updates naar verbonden clients te sturen.
  • Werk de JavaScript-clientwebtoepassing bij om verbinding te maken met SignalR om de berichten op te halen en weer te geven.