Aplicações de baixa latência normalmente requerem um meio de comunicação mais rápido do que o que o HTTP pode fornecer. Exemplos incluem jogos online para vários jogadores ou aplicações de chat onde são necessárias comunicações interativas em tempo real para proporcionar a experiência do utilizador certa. WebSockets é um protocolo de comunicação em tempo real que permite uma ligação aberta, contínua e bidirecional entre um cliente e um servidor. Isto permite que os dados sejam enviados para um cliente (ou seja, um navegador), mesmo sem que o cliente tenha de os solicitar. Com o protocolo HTTP, o servidor só responde se o cliente enviar uma solicitação.
As instituições financeiras são outro caso de uso para o WebSockets. Recentemente, trabalhamos com um grande banco norte-americano usando o protocolo WebSocket para estabelecer uma conexão aberta para o servidor de origem para enviar notificações em tempo real sempre que as negociações passam sem o cliente sondar para elas.
Como funciona o protocolo WebSocket?
As conexões WebSocket começam como conexões HTTP regulares. Para estabelecer uma ligação WebSocket, o cliente e o servidor fazem a atualização do protocolo HTTP para o protocolo WebSocket durante o seu aperto de mão inicial (este parâmetro de protocolo é conhecido como o handshake WebSocket). Para iniciar esta atualização, o cliente envia uma solicitação ao servidor usando os seguintes cabeçalhos:
-
Ligação: Atualização – Indica que o cliente quer alterar o protocolo
-
Atualização: WebSocket – Indica que o protocolo solicitado é “WebSocket”
Se o servidor entender o protocolo WebSocket e concordar com o switch, ele envia de volta um código de resposta especial: 101 (Trocando protocolos) com os mesmos dois cabeçalhos. Nesse ponto, a conexão HTTP é substituída pela conexão WebSocket pela mesma conexão TCP/IP subjacente. Uma vez estabelecido, os quadros de dados do WebSocket podem ser enviados de um lado para o outro entre o cliente e o servidor no modo duplex até que um lado feche a conexão.
Os principais benefícios do WebSockets sobre o HTTP incluem:
-
Conexão persistente: Não há necessidade de o cliente reiniciar frequentemente conexões verificando novos dados.
-
Menor latência: Os WebSockets usam uma sobrecarga mínima. Como há uma conexão contínua, a sobrecarga normal associada a solicitações HTTP, como cabeçalhos e outras informações, não precisa mais ser enviada, o que reduz a latência.
-
Comunicação full-duplex: Os WebSockets oferecem comunicações bidirecionais entre o servidor e o cliente para que ambas as partes possam comunicar e trocar dados ao mesmo tempo. A Edgecast, agora Edgio, tem o prazer de oferecer suporte para o protocolo WebSocket em toda a nossa rede mundial de distribuição. À medida que avançamos para a era da Internet das Coisas e da Computação de Borda, o protocolo WebSocket beneficiará as empresas que querem oferecer aplicativos de baixa latência na borda.