WebSockets - komunikacja dwustronna
Zanim przejdziemy do potrzeby gniazd sieciowych, należy przyjrzeć się istniejącym technikom, w których są wykorzystywane duplex communicationmiędzy serwerem a klientem. Są następujące -
- Polling
- Długie odpytywanie
- Streaming
- Postback i AJAX
- HTML5
Ankieta
Polling można zdefiniować jako metodę, która wykonuje okresowe żądania niezależnie od danych występujących w transmisji. Okresowe żądania wysyłane są w sposób synchroniczny. Klient wysyła do serwera okresowe żądanie w określonych odstępach czasu. Odpowiedź serwera zawiera dostępne dane lub jakiś komunikat ostrzegawczy.
Długie odpytywanie
Długie sondowanie, jak sama nazwa wskazuje, obejmuje podobną technikę jak ankietowanie. Klient i serwer utrzymują połączenie aktywne do momentu pobrania niektórych danych lub przekroczenia limitu czasu. Jeśli z jakiegoś powodu połączenie zostanie utracone, klient może rozpocząć od nowa i wykonać sekwencyjne żądanie.
Długie sondowanie to nic innego jak poprawa wydajności w stosunku do procesu odpytywania, ale ciągłe żądania mogą spowolnić ten proces.
Streaming
Uważa się, że jest to najlepsza opcja do transmisji danych w czasie rzeczywistym. Serwer utrzymuje otwarte i aktywne połączenie z klientem do momentu pobrania wymaganych danych. W takim przypadku mówi się, że połączenie jest otwarte na czas nieokreślony. Przesyłanie strumieniowe obejmuje nagłówki HTTP, które zwiększają rozmiar pliku, zwiększając opóźnienie. Można to uznać za poważną wadę.
AJAX
AJAX jest oparty na Javascript XmlHttpRequestObiekt. Jest to skrócona forma asynchronicznego języka JavaScript i XML.XmlHttpRequestObiekt umożliwia wykonanie skryptu JavaScript bez przeładowywania całej strony internetowej. AJAX wysyła i odbiera tylko część strony internetowej.
Fragment kodu wywołania AJAX z XmlHttpRequest Przedmiot jest następujący -
var xhttp;
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
Główne wady AJAX w porównaniu z Web Sockets są -
- Wysyłają nagłówki HTTP, co powoduje, że całkowity rozmiar jest większy.
- Komunikacja jest półdupleksowa.
- Serwer WWW zużywa więcej zasobów.
HTML5
HTML5 to solidna platforma do tworzenia i projektowania aplikacji internetowych. Główne filary toMark-up, CSS3 i Javascript API razem.
Poniższy diagram przedstawia komponenty HTML5 -
Podany poniżej fragment kodu opisuje deklarację HTML5 i jej typ dokumentu.
<!DOCTYPE html>
Dlaczego potrzebujemy gniazd internetowych?
Internet został pomyślany jako zbiór stron w języku Hypertext Mark-up Language (HTML), które łączą się ze sobą, tworząc koncepcyjną sieć informacji. Z biegiem czasu zasoby statyczne zwiększyły się pod względem liczby i bogatszych elementów, takich jak obrazy, i zaczęły stanowić część tkaniny sieciowej.
Zaawansowane technologie serwerowe pozwalające na dynamiczne strony serwerowe - strony, których treść została wygenerowana na podstawie zapytania.
Wkrótce wymóg posiadania bardziej dynamicznych stron internetowych doprowadził do udostępnienia Dynamic Hypertext Mark-Up Language (DHTML). Wszystko dzięki JavaScriptowi. W następnych latach widzieliśmycross frame communication próbując uniknąć ponownego ładowania strony, po którym następuje HTTP Polling w ramkach.
Jednak żadne z tych rozwiązań nie oferowało prawdziwie ustandaryzowanego rozwiązania dla dwukierunkowej komunikacji w czasie rzeczywistym między serwerem a klientem w różnych przeglądarkach.
To zrodziło potrzebę protokołu Web Sockets Protocol. Dało to początek komunikacji w trybie pełnego dupleksu, zapewniając bogatą funkcjonalność pulpitu we wszystkich przeglądarkach internetowych.