Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

HTML5 WebSocket

Breve introduzione al protocollo considerato l'AJAX del futuro
Breve introduzione al protocollo considerato l'AJAX del futuro
Link copiato negli appunti

L'avvento di AJAX è stato rivoluzionario: tutte le più grandi e diffuse applicazioni Web hanno subito questa onda di cambiamento e l'hanno cavalcata verso una migliore esperienza utente offerta.

Questa tecnologia però, come tutti sappiamo, ha molti limiti e può essere notevolmente migliorata. Proprio per questo motivo gli enti di standardizzazione del Web hanno voluto introdurre tra le novità legate al prossimo HTML 5 una componente che potesse sostituire e migliorare AJAX: i WebSocket.

Essi offrono un canale di comunicazione bidirezionale (sia da client a server che viceversa) e full- duplex (leggo e scrivo contemporaneamente) basato sul TCP. Il processo di standardizzazione è ancora in corso ma sembra aver raggiunto un livello di stabilità e ufficialità accettabile per poterne discutere e analizzarne il funzionamento.

Compatibilità

Ecco l'elenco dei principali browser e dei relativi rendering engine con la specifica relativa all'implementazione dello standard WebSocket:

Browser Supporto WebSocket
Internet Explorer dalla versione 10
Firefox dalla versione 12
Chrome dalla versione 19
Safari e iOS Safari in maniera completa dalla versione 6
Opera in maniera completa dalla versione 12.5
Android Browser non supporta ancora la specifica

Le API esposte

Uno degli obiettivi del W3C è stato quello della semplicità e della facilità d'uso dei WebSocket. Le API esposte sono infatti molto semplici.

Tutta la gestione del flusso comunicativo è delegata ad un oggetto WebSocket che presenta metodi per l'invio e listeners event-oriented per la ricezione di messaggi. Come vedremo tra poco le API sono molto simili a quelle utilizzate nell'articolo precedente riguardante i WebWorkers.

Per creare un WebSocket l'unico parametro necessario è l'url al quale esso deve puntare:

var webSocket = new WebSocket("ws://www.websocket.org");

Una volta creato l'oggetto abbiamo a disposizione due metodi per l'invio di informazioni e per la chiusura del canale di comunicazione:

webSocket.send(“Hello world”);
webSocket.close()

Per interagire invece con i messaggi ricevuti dal server e con il cambiamento di stato del WebSocket stesso possiamo utilizzare i listeners:

webSocket.onopen = function(event) {
 console.log(“Connection opened!”);
}
webSocket.onmessage = function(event) {
console.log(“Server says “ + event.data);
}
webSocket.onerror = function(event) {
console.log(“Error!!”);
}
webSocket.onclose = function(event) {
console.log(“Connection closed!”);
}

Il protocollo Web Socket

La comunicazione tra client e server avviene tramite un protocollo particolare, simile ma non compatibile con l'HTTP. Il nome del protocollo è, banalmente, Web Socket Protocol e le specifiche possono essere reperite a questo indirizzo: http://www.whatwg.org/specs/web-socket-protocol/.

Per vedere all'opera un'applicazione basata su WebSocket è necessario dotarsi di un web server che supporti questo protocollo ed attualmente non sono ancora presenti soluzioni stabili e funzionali soprattutto data la ancora bassa diffusione delle specifiche a livello di browser.

Per approfondire di più l'argomento WebSocket la miglior fonte di documentazione sono le specifiche ufficiali disponibili sul sito web del W3C.

Ti consigliamo anche