Wprowadzenie
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.