WebSocket - Comunicazione duplex
Prima di immergersi nella necessità dei Web socket, è necessario dare uno sguardo alle tecniche esistenti, per le quali vengono utilizzate duplex communicationtra il server e il client. Sono i seguenti:
- Polling
- Polling lungo
- Streaming
- Postback e AJAX
- HTML5
Polling
Il polling può essere definito come un metodo che esegue richieste periodiche indipendentemente dai dati presenti nella trasmissione. Le richieste periodiche vengono inviate in modo sincrono. Il client effettua una richiesta periodica in un intervallo di tempo specificato al server. La risposta del server include i dati disponibili o qualche messaggio di avviso in esso.
Polling lungo
Il polling lungo, come suggerisce il nome, include una tecnica simile come il polling. Il client e il server mantengono la connessione attiva fino a quando non vengono recuperati alcuni dati o si verifica il timeout. Se la connessione viene persa per alcuni motivi, il client può ricominciare da capo ed eseguire la richiesta sequenziale.
Il polling lungo non è altro che un miglioramento delle prestazioni rispetto al processo di polling, ma le richieste costanti possono rallentare il processo.
Streaming
È considerata la migliore opzione per la trasmissione dei dati in tempo reale. Il server mantiene la connessione aperta e attiva con il client fino a quando ea meno che non vengano recuperati i dati richiesti. In questo caso, la connessione si dice che sia aperta a tempo indeterminato. Lo streaming include intestazioni HTTP che aumentano la dimensione del file, aumentando il ritardo. Questo può essere considerato un grave inconveniente.
AJAX
AJAX è basato su Javascript XmlHttpRequestOggetto. È una forma abbreviata di Javascript e XML asincrono.XmlHttpRequestObject consente l'esecuzione del Javascript senza ricaricare l'intera pagina web. AJAX invia e riceve solo una parte della pagina web.
Lo snippet di codice della chiamata AJAX con XmlHttpRequest L'oggetto è il seguente:
var xhttp;
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
I principali svantaggi di AJAX rispetto a Web Sockets sono -
- Inviano intestazioni HTTP, il che aumenta la dimensione totale.
- La comunicazione è half-duplex.
- Il server web consuma più risorse.
HTML5
HTML5 è un solido framework per lo sviluppo e la progettazione di applicazioni web. I pilastri principali includonoMark-up, CSS3 e Javascript API insieme.
Il diagramma seguente mostra i componenti HTML5:
Lo snippet di codice riportato di seguito descrive la dichiarazione di HTML5 e il suo doctype.
<!DOCTYPE html>
Perché abbiamo bisogno di Web Socket?
Internet è stato concepito per essere una raccolta di pagine HTML (Hypertext Mark-up Language) che si collegano tra loro per formare una rete concettuale di informazioni. Nel corso del tempo, le risorse statiche sono aumentate di numero e gli elementi più ricchi, come le immagini, hanno iniziato a far parte del tessuto web.
Tecnologie server avanzate che consentivano pagine server dinamiche: pagine il cui contenuto è stato generato in base a una query.
Presto, l'esigenza di avere pagine web più dinamiche porta alla disponibilità del linguaggio DHTML (Dynamic Hypertext Mark-up Language). Tutto grazie a JavaScript. Negli anni successivi, abbiamo vistocross frame communication nel tentativo di evitare il ricaricamento della pagina seguito da HTTP Polling all'interno dei frame.
Tuttavia, nessuna di queste soluzioni offriva una soluzione cross browser veramente standardizzata per la comunicazione bidirezionale in tempo reale tra un server e un client.
Ciò ha dato origine alla necessità del protocollo Web Sockets. Ha dato origine alla comunicazione full-duplex portando funzionalità desktop avanzate a tutti i browser web.