Executando verificação de segurança...
16

O que o iniciante precisa compreender sobre WebSocket?

Antes de começarmos a falar de WebSocket, é primordial que eu te introduza o HTTP(HyperText Transfer Protocol).

O HTTP é o principal protocolo de comunicação web, o modelo dele é baseado em requisição e resposta, para os mais nerds “request and response” e traduzindo para leigos, um navegador de internet envia solicitações e o servidor da aplicação responde com algo. A grosso modo é isso, a requisição HTTP é um GET quando queremos consultar algo, e um POST quando queremos enviar algo, repetindo a GROSSO MODO é isto.
Como o servidor responde? Com um código de resposta e dependendo da configuração da aplicação e da requisição feita, responde com um conteúdo(body, não entraremos em detalhes dos cabeçalhos).
O protocolo HTTP tem algumas limitações que você já deve ter percebido, o servidor RESPONDE, ele não tem poderes de ele abrir uma requisição para o cliente(ex: navegador), isso é o que chamamos de comunicação unidirecional. E temos outra limitação que é a conexão efêmera. O que seria isto? Cada requisição e resposta é independente, resultando em uma nova conexão para cada requisição.
Sendo assim as limitações do HTTP o transformam em um protocolo ineficiente para aplicações que dependem de atualizações frequentes.
Um exemplo de um chat, com o HTTP, só seria possível o servidor enviar mensagens quando ele for solicitado pelo cliente, algo que é estranho. Pois precisamos receber mensagens independentes de termos enviado mensagens ao servidor.

O WebSocket foi desenvolvido para superar estas limitações.
Ele é um protocolo de comunicação bidirecional que opera sobre o protocolo HTTP. Para se estabelecer a conexão o processo é iniciado com uma requisição HTTP de handshake do cliente para o servidor solicitando uma conexão WebSocket esta requisição inclui um cabeçalho específico “Upgrade: websocket”. Quando o servidor recebe este tipo de solicitação, caso ele suporte o upgrade e a aceite, teremos uma resposta com o código de resposta “101 Switching Protocols” e a conexão será estabelecida.
Esta é uma conexão bidirecional, o que significa isto, teremos uma troca de mensagens entre servidor e cliente sem uma nova requisição HTTP, agora tanto o cliente quanto o servidor podem enviar mensagens.
No WebSocket, temos baixa latência, pois temos uma conexão sempre aberta, sem a sobrecarga de cabeçalhos a cada nova requisição.
Os dados são enviamos como frames, podendo conter texto, dados binários ou sinais de controle, como os frames de fechamento de conexão.
Algumas características técnicas:

  • Portas: Assim como no HTTP e HTTPS temos a porta 80(WS) e 443(WSS).
  • Protocolo: Inicia-se como HTTP, mas após o Handshake vira um protocolo WebSocket.
  • Segurança: WebSockets pode ser utilizado em conjunto com TLS (Transport Layer Security) para garantir a segurança da comunicação, sendo identificado pelo prefixo wss://.
  • Suporte a Browsers: A maioria dos navegadores modernos oferece suporte nativo ao WebSocket, tornando-o uma opção viável para aplicações web que necessitam de comunicação em tempo real.
    Exemplos de uso:
    Aplicações de chat em tempo real.
    Jogos online que requerem atualizações constantes entre o cliente e o servidor.
    Plataformas de trading que exigem atualização em tempo real de preços de ações.
    Monitoramento em tempo real de dados de sensores ou outros dispositivos IoT.

Gostou?

Carregando publicação patrocinada...
1

Boa, gostei bastante da explicação "à grosso modo".Muitas vezes é EXATAMENTE isso que precisamos saber, sem a necessidade de ficar assistindo vídeos de 30 fockin minutos ou lendo enciclopédias inteiras de enrolação. Por mais explicações "à grosso modo", sempre que possível!

1
1
1
0
1

Ótima publicação! Eu começei recentemente nesse mundo de Tecnologia e um dos temas que estava em uma grade de um curso online que faço é Socket.io, o que pelo que já vi é uma tecnologia que usa esse conceito de WebSocket. Agora acho que quando chegar lá estarei um pouco mais preparado

1

Muitissimo obrigado irmão, esses dias tava quebrando a cabeça tentando entender "bem" o WebSocket, seu post me ajudou e muito a entender melhor