Wprowadzenie

Ukończone

Jako inżynier z firmą Tailwind Traders wiesz, że Twoja firma planuje uruchomić nową witrynę internetową, która udostępnia klientom informacje o cenach akcji. Niedawno stażysta utworzył prototyp witryny internetowej dla nowej aplikacji, a główny architekt poprosił Cię o wprowadzenie i ulepszenie rozwiązania. Twoim celem jest zaktualizowanie aplikacji w celu zaimplementowania automatycznych aktualizacji informacji o cenach akcji, ale zapewnienie komunikacji między klientem a serwerem odbywa się tylko wtedy, gdy dane zmieniają się na serwerze.

Architektura prototypu

Prototyp serwera ma 2 funkcje:

Nazwa funkcji Typ wyzwalacza Opis
uzyskajAkcje Azure Cosmos DB Serwer jest odpowiedzialny za odczytywanie wszystkich danych z tabeli stocks w bazie danych i zwracanie tych danych w odpowiedzi HTTP za każdym razem, gdy klient zażąda go.
setPrice Minutnik Funkcja umożliwiająca zmianę danych w bazie danych jest uruchamiana w wyzwalaczu czasomierza. Symuluje to odbieranie zmian z systemu zaplecza.

Jako prototyp stażysta symulował kanał danych giełdowych za pomocą funkcji zegara, która aktualizuje się co minutę. Witryna internetowa klienta żąda wszystkich zasobów z punktu końcowego interfejsu API /api/getStocks co 5 sekund, próbując wyświetlić dane niemal w czasie rzeczywistym. To żądanie klienta nie jest efektywne. Zamiast ściągać dane z serwera, bardziej wydajne jest wypychanie nowych informacji o magazynie przez serwer.

Zadania do wykonania

W tym module wykonasz następujące czynności:

  • Uruchom prototyp: Wyświetl aplikację kliencką, która sonduje serwer pod kątem wszystkich zasobów w regularnych odstępach czasu
  • Ulepsz aplikację: zaimplementuj bezserwerową aplikację w usłudze Azure Functions, aby przesyłać zmiany do połączonych klientów przy użyciu usługi SignalR Service, zapewniając niemal natychmiastowe aktualizacje.
  • Zaktualizuj aplikację internetową JavaScript klienta, aby nawiązać połączenie z usługą SignalR, aby pobrać i wyświetlić komunikaty.