Le applicazioni a bassa latenza richiedono in genere un mezzo di comunicazione più veloce rispetto a quello che HTTP è in grado di offrire. Ad esempio, le applicazioni di chat o di gioco online multigiocatore in cui sono necessarie comunicazioni interattive e in tempo reale per fornire la giusta esperienza utente. WebSockets è un protocollo di comunicazione in tempo reale che consente una connessione bidirezionale aperta, continua e bidirezionale tra un client e un server. Ciò consente di inviare i 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 di WebSockets. Di recente, abbiamo lavorato con una grande banca nordamericana utilizzando il protocollo WebSocket per stabilire una connessione aperta per il server di origine per inviare notifiche in tempo reale ogni volta che le transazioni vengono eseguite senza il polling del client.
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 l’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 (protocolli di commutazione) 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 fino a quando un lato chiude la connessione.
I principali vantaggi di WebSockets su HTTP includono:
-
Connessione persistente: Non è necessario che il client riavvii frequentemente le connessioni per verificare la presenza di nuovi dati.
-
Latenza ridotta: I WebSockets utilizzano un overhead minimo. Poiché esiste una connessione continua, il normale overhead associato alle richieste HTTP, come intestazioni e altre informazioni, non deve più essere inviato, riducendo così la latenza.
-
Comunicazione full-duplex: WebSockets offre 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 supporto per il protocollo WebSocket attraverso la nostra rete di distribuzione mondiale. Con il passaggio all’era dell’IoT e dell’edge computing, il protocollo WebSocket andrà a vantaggio delle aziende che desiderano offrire applicazioni a bassa latenza alla periferia della rete.