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 praktykant stworzył prototyp witryny internetowej dla nowej aplikacji, a teraz główny architekt zwrócił się do Ciebie o udoskonalenie rozwiązania. Twoim celem jest zaktualizowanie aplikacji w celu wdrożenia automatycznych aktualizacji informacji o cenach akcji, lecz przy zapewnieniu, że komunikacja między klientem i serwerem odbywa się tylko po zmianie danych na serwerze.

Architektura prototypu

Prototyp serwera ma 2 funkcje:

Nazwa funkcji Typ wyzwalacza opis
getStocks 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 Czasomierz 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ł źródło danych zapasów za pomocą funkcji czasomierza, która jest aktualizowana co minutę. Witryna internetowa klienta żąda wszystkich zasobów z punktu końcowego interfejsu /api/getStocks API co 5 sekund, próbując wyświetlić dane niemal w czasie rzeczywistym. To żądanie klienta nie jest wydajne. Zamiast ściągać dane z serwera, bardziej wydajne jest wypychanie nowych informacji o magazynie przez serwer.

Zadania do wykonania

Zawartość tego modułu:

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