Le applicazioni a bassa latenza in genere richiedono un mezzo di comunicazione più veloce di quello che HTTP è in grado di fornire. Ad esempio, applicazioni di gioco online multiplayer o chat in cui sono necessarie comunicazioni interattive in tempo reale per fornire la giusta esperienza utente. WebSockets è un protocollo di comunicazione in tempo reale che consente una connessione bidirezionale aperta e continua tra un client e un server. Ciò consente l’invio dei dati a un client (ad esempio, un browser), anche senza che il client debba richiederli. Con il protocollo HTTP, il server risponde solo se il client invia una richiesta.
Le istituzioni finanziarie sono un altro caso d’ uso per WebSockets. Di recente, abbiamo collaborato con un’importante banca nordamericana utilizzando il protocollo WebSocket per stabilire una connessione aperta per il server di origine, in modo da inviare notifiche in tempo reale ogni volta che le transazioni vengono effettuate senza che il client li richieda.
Come funziona il protocollo WebSocket?
Le connessioni WebSocket iniziano come normali connessioni HTTP. Per stabilire una connessione WebSocket, il client e il server eseguono l’aggiornamento dal protocollo HTTP al protocollo WebSocket durante l’handshake iniziale (questo switch di protocollo è noto come handshake WebSocket). Per avviare questo aggiornamento, il client invia una richiesta al server utilizzando le seguenti intestazioni:
-
Connection: Upgrade (connessione: Aggiornamento): Indica che il client desidera modificare il protocollo
-
Aggiornamento: WebSocket: Indica che il protocollo richiesto è “WebSocket”
Se il server comprende il protocollo WebSocket e accetta lo switch, invia un codice di risposta speciale: 101 (switching Protocols) con le stesse due intestazioni. A questo punto, la connessione HTTP viene sostituita dalla connessione WebSocket sulla stessa connessione TCP/IP sottostante. Una volta stabiliti, i frame di dati WebSocket possono essere inviati avanti e indietro tra il client e il server in modalità full-duplex finché un lato non chiude la connessione.
I vantaggi principali di WebSockets rispetto a HTTP includono:
-
Connessione persistente: Non è necessario che il client riavvii frequentemente le connessioni per verificare la presenza di nuovi dati.
-
Latenza ridotta: I WebSocket utilizzano un overhead minimo. Poiché esiste una connessione continua, il normale overhead associato alle richieste HTTP, come le intestazioni e altre informazioni, non deve più essere inviato, il che riduce la latenza.
-
Comunicazione full-duplex: I WebSocket offrono comunicazioni bidirezionali tra il server e il client in modo che entrambe le parti possano comunicare e scambiare dati contemporaneamente. Edgecast, ora Edgio, è lieta di offrire il supporto per il protocollo WebSocket in tutta la nostra rete di distribuzione mondiale. Man mano che passiamo all’era dell’IoT e dell’edge computing, il protocollo WebSocket andrà a vantaggio delle aziende che desiderano offrire applicazioni a bassa latenza all’edge della rete.