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

WebSocket e Node.js

I vantaggi nell'uso dei WebSocket di HTML5 e come sfruttarli grazie a Node.js
I vantaggi nell'uso dei WebSocket di HTML5 e come sfruttarli grazie a Node.js
Link copiato negli appunti

Il pattern di comunicazione Long-Polling è sicuramente una tecnica interessante e attualmente utilizzata ufficialmente da molte applicazioni, ma in fondo si tratta di una decontestualizzazione di un protocollo (l'HTTP) dal suo ambito originale per il quale è stato sviluppato.

In questa lezione mettiamo a fuoco l'uso dei WebSocket: una parte della specifica HTML5, che permette di realizzare applicazioni real-time in maniera nativa, sfruttando API già implementate dai browser attuali, tutto via Javascript naturalmente. Proprio grazie ai WebSoket è stato implementato proprio un nuovo protocollo, parallelo all'HTTP standard, adatto per questo tipo di applicazioni.

WebSocket, con Node.js si può!

Prima dell'avvento di Node.js (e di altri framework di sviluppo web event-driven come Tornado), sviluppare con i WebSocket era praticamente impossibile, specie per la sua natura asincrona, non ancora supportata dai principali server Web (Apache in primis). Ora che Node.js ha guadagnato notevole visibilità abbiamo a disposizione tutti gli strumenti per realizzare un'applicazione basata sui WebSocket.

Anche Node.js al momento non supporta nativamente i WebSocket, ma esistono numerosi plugin che implementano in maniera perfetta questo nuovo protocollo.

Per gli esempi attualmente utilizzeremo ws. Per installare la libreria basterà invocare un semplice:

npm install ws

Ws include sia un componente server-side sia un componente client-side proprio perchè questo nuovo protocollo non è strettamente legato ai browser ma può essere implementato anche come applicazione standalone.

Ovviamente all'interno dei browser che supportano WebSocket non sarà necessario includere nessuno script aggiuntivo dato che tutte le API sono implementate nativamente.

Il modulo include anche un tool da linea di comando, wscat, utile per testare i servizi esposti da linea di comando.

WebSocket a disposizione di tutti

Una delle potenzialità del mondo dei WebSocket è l'assenza di limiti legate alle crossdomain
policy
. Questo significa due cose:

  • È possibile collegarsi a WebSocket remoti indipendentemente dall'host della pagina
  • È possibile creare servizi WebSocket anche a utenti terzi
  • Attualmente sono presenti pochi servizi disponibili sul web. Uno però di discreta utilità può essere
    l'echo WebSocket disponibile a questo indirizzo: ws://echo.websocket.org.

    Altri esempi di implementazione adhoc:

    Compatibilità

    Vediamo rapidamente quali browser supportano questa nuova feature attualmente:

    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

    Per questo motivo gli esempi che realizzeremo dovranno essere avviati in un browser compatibile.

    Ti consigliamo anche