Jak korzystać z zdarzeń serwera HTML5
- 2310
- 742
- Ignacy Modzelewski
Cel
Po przeczytaniu tego samouczka powinieneś być w stanie zrozumieć i skorzystać z zdarzeń serwera HTML5.
Wymagania
- Nie wymaga żadnych szczególnych wymagań
Konwencje
- # - Wymaga podanego polecenia Linuxa, które można było wykonać z uprawnieniami root
bezpośrednio jako użytkownik root lub za pomocąsudo
Komenda - $ - Biorąc pod uwagę polecenie Linux, które ma być wykonane jako zwykły użytkownik niepewny
Wstęp
Zdarzenia Server-Sent to HTML5
Technologia, która pozwala klientowi automatyczne monitorowanie powiadomień o zdarzeniach z serwera i reagowanie w razie potrzeby. Ta technologia jest bardzo przydatna do powiadomienia wydarzeń na żywo, na przykład wdrożenie aplikacji do przesyłania wiadomości na żywo lub kanał informacyjny. W tym samouczku zobaczymy, jak wdrożyć tę technologię za pomocą PHP i JavaScript.
Prosty przykład
Ze względu na ten samouczek będziemy współpracować z listą „zwierząt”, która zostanie wyświetlona na prostej stronie HTML. Podczas gdy w rzeczywistej aplikacji dane zostałyby przechowywane i pobierane z bazy danych, w tym przypadku, dla uproszczenia, użyjemy tablicy PHP. Chcemy uzyskać powiadomienie w czasie rzeczywistym o zmianach na liście zwierząt, abyśmy mogli odpowiednio zaktualizować naszą stronę HTML, bez konieczności jej odświeżenia.
Kod boczny serwera
Na początek, zaludniemy naszą małą gamę zwierząt w Zwierząt.php
Plik (pracujemy w katalogu głównym naszego serwera WWW VirtualHost):
Kopiuj Zapisz i zamknij plik jako Zwierząt.php
. Teraz, dla najważniejszej części: musimy napisać skrypt, który emituje wiadomość, która będzie ostatnio używana przez nasz kod JavaScript po stronie klienta. Z dużą ilością fantazji nazwiemy scenariusz scenariusz.php
. Kod jest bardzo prosty, oto:
Kopiuj Pierwszą rzeczą, na którą należy zauważyć, jest to, że zadzwoniliśmy nagłówek
Funkcja w wierszach 2-3: Jest to funkcja używana do wysyłania Surowe nagłówki HTTP
. W tym przypadku nazywamy to dwa razy: pierwszy w wierszach 2, aby skonfigurować Kontrola pamięci podręcznej
Pole nagłówka i określają dyrektywy buforowania (bez buforowania strony), drugi w wierszach 3, aby ustawić Typ zawartości
Do tekst/strumień zdarzeń
. Te konfiguracja nagłówków jest niezbędna, aby nasz skrypt działał poprawnie. Należy również zauważyć, że aby poprawnie pracować, nagłówek
Funkcja musi być zawsze wywoływana przed utworzeniem jakiegokolwiek innego wyjścia.
Po skonfigurowaniu nagłówków HTML po prostu użyliśmy wymagają raz
stwierdzenie w wierszach 6, aby wymagać treści Zwierząt.php
Plik, który zawiera tablicę, którą napisaliśmy wcześniej. W prawdziwym scenariuszu zostałby zastąpiony przez Zapytanie SQL
Aby odzyskać takie informacje z bazy danych.
Wreszcie w wierszach 9-11 wysłaliśmy naszą odpowiedź do klienta: kodowany JSON
Tablica „zwierząt”. Bardzo ważna rzecz do zauważenia: format zdarzeń po stronie serwera wymaga, aby każda odpowiedź wysłana przez serwer była prefiksowana przez dane:
sznur, a następnie dwa NOWOŚĆ LINE
. W tym przypadku użyliśmy \N
nowa postać, ponieważ działamy na platformie podobnej do Unix; Aby zapewnić kompatybilność międzyplatformową Php_eol
stały.
Możliwe jest nawet przełamanie komunikatu odpowiedzi na wielu wierszach: w tym przypadku każda linia, jak powiedziano wcześniej, musi zacząć od „Data:”, a następnie musi nastąpić jedna nowa postać. Dodatkowa nowa linia jest wymagana tylko na ostatniej linii.
Serwer może również kontrolować, jak często klient powinien spróbować ponownie się połączyć (domyślnie jest 3
sekundy) i nazwa wydarzenie
(domyślnie to „wiadomość”) wysłane do klienta. Aby dostosować ten pierwszy, musimy użyć spróbować ponownie
Dyrektywa, a następnie pożądany przedział czasu, wyrażony w milisekundach. Na przykład, aby skonfigurować interwał 1 sekundy:
echo „Postrudź: 1000 \ n”;
Zauważ, że nawet tutaj wymagana jest nowa linia. Aby zmienić nazwę zdarzenia, musimy użyć wydarzenie
dyrektywa:
echo „wydarzenie: Customevent \ n”;
Domyślne zdarzenie to „wiadomość”: jest to ważne, ponieważ zdarzenie musi być określone w kodzie JavaScript klienta podczas dodawania słuchacza zdarzenia, jak zobaczymy za chwilę.
Po wysłaniu naszej odpowiedzi zadzwoniliśmy spłukać
Funkcja: jest to potrzebne do pomiaru danych do klienta.
Kod boczny klienta
Pierwszą rzeczą, którą zamierzamy zrobić po stronie klienta, jest przygotowanie naszego pliku HTML z listą dostępnych zwierząt:
Kopiuj To naprawdę podstawowy HTML z odrobiną php, aby wyświetlić listę zwierząt w momencie ładowania strony i dołączyć nasze .plik JS (skrypt.JS), ale będzie serwować nasz cel. Teraz zobaczmy, w jaki sposób możemy korzystać z zdarzeń po stronie serwera. Pierwszą rzeczą, którą musimy zrobić, jest instancja Obiekt źródła zdarzenia
. W naszym pliku JavaScript napisz:
Niech Eventource = new Eventource („Skrypt.php ');
Kopiuj Jak widać, przekazaliśmy ścieżkę do naszego skryptu serwera jako argument w Wydarzenia
Konstruktor obiektu. Ten obiekt otworzy połączenie z serwerem. Teraz musimy dodać Słuchacz wydarzenia
, abyśmy mogli wykonywać niektóre działania, gdy wiadomość jest odbierana z serwera:
Niech Eventource = new Eventource („Skrypt.php '); wydarzenia.addEventListener („Message”, funkcja (event) let data = json.Parse (wydarzenie.dane); Let ListElements = Dokument.getElementsBaTagname („li”); dla (niech i = 0; i < listElements.length; i++) let animal = listElements[i].textContent; if (!data.includes(animal)) listElements[i].style.color = "red"; );
Kopiuj Po otrzymaniu wiadomości używamy JSON.analizować
Metoda w wierszu 4 w celu przekształcenia danych wysyłanych przez serwer (ciąg, zawarty w dane
właściwość obiektu zdarzenia), do tablicy JavaScript.
Następnie zapętlimy się w wierszach 7-11 przez wszystkie elementy z tag, które są elementami naszej listy zwierząt: jeśli jakiś element nie wydaje się już w tablicy wysyłanej przez serwer, kolor tekstu zawarty na liście jest zmieniany na czerwony, ponieważ „zwierzę” nie jest Dłuższe dostępne (lepszym rozwiązaniem byłoby włączenie tylko zmiany lub braku nazwy elementu w odpowiedzi serwera, ale naszym celem jest pokazanie, jak działa technologia). Zmiana strony nastąpi w czasie rzeczywistym, więc nie trzeba odświeżyć. Możesz zauważyć, w jaki sposób nasza strona korzysta z zdarzeń wysłanych serwera, w poniższym filmie:
Jak widać, gdy tylko „kot” zostanie usunięty z tablicy „zwierząt” (nasze źródło danych), element wyświetlany na stronie HTML jest modyfikowana, aby odzwierciedlić tę zmianę.
Strumień danych między serwerem a klientem można przerwać za pomocą zamknąć
Metoda wydarzenia
obiekt:
wydarzenia.zamknąć()
Do obsługi połączenia otwarty
, I błąd
Wydarzenia, dedykowani słuchacze zdarzeń można dodać do obiektu.
Powiązane samouczki Linux:
- Rzeczy do zainstalowania na Ubuntu 20.04
- Jak wysłać powiadomienia stacjonarne za pomocą powiadomienia-send
- Jak obsługiwać zdarzenia ACPI w Linux
- Jak zbudować aplikację Tkinter za pomocą obiektu zorientowanego na…
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
- Podstawowe polecenia Linux
- Lista klientów FTP i instalacja na Ubuntu 22.04 Linux…
- Pobierz na żywo CD/DVD Linux
- « Zainstaluj oprogramowanie bezprzewodowe Intel na Wheezy Debian 7
- Zaszyfruj napęd z Veracrypt w Linux »