Deadline: to zadanie jest na zaliczenie (TAK/NIE), trzeba je oddać na laboratorium osobie, która prowadzi zajęcia.
W pierwszej części tego laboratorium przygotowaliśmy backend aplikacji Django do wysyłania powiadomień o nowych planszach i zapisanych ścieżkach za pomocą Server-Sent Events (SSE). Teraz czas na zintegrowanie tej funkcjonalności po stronie klienta.
Celem tej części laboratorium jest zaimplementowanie po stronie klienta (TypeScript) mechanizmu odbierania i wyświetlania powiadomień SSE wysyłanych przez serwer. Użytkownik powinien otrzymywać dyskretne powiadomienia w czasie rzeczywistym o utworzeniu nowych plansz lub zapisaniu nowych ścieżek przez innych (lub siebie samego).
**Nawiązanie połączenia SSE:**
* W kodzie TypeScript, użyj wbudowanego interfejsu `EventSource` do nawiązania połączenia z endpointem SSE przygotowanym w Części 1 (np. `/sse/notifications/`).
* Połączenie powinno być inicjowane po załadowaniu odpowiedniej strony/komponentu aplikacji (np. głównego widoku plansz lub globalnie, jeśli powiadomienia mają być dostępne w całej aplikacji).
newBoard
i newPath
).data
wiadomości SSE.Wyświetlanie powiadomień:
newBoard
: “Użytkownik [creator_username] utworzył nową planszę: [board_name].”newPath
: “Użytkownik [user_username] zapisał ścieżkę na planszy: [board_name].”EventSource
(zdarzenie onerror
).Wskazówki technologiczne:
EventSource
w JavaScript/TypeScript.addEventListener('eventName', callback)
oraz onmessage
, onerror
, onopen
obiektu EventSource
.