WebSockets são um protocolo de comunicação projetado para fornecer canais de comunicação full-duplex em tempo real por meio de uma única conexão TCP. Ao contrário do HTTP tradicional, que segue um modelo de solicitação-resposta, os WebSockets permitem a comunicação contínua e bidirecional entre um cliente e um servidor. Depois que uma conexão WebSocket é estabelecida por meio de um processo de handshake, os dados podem ser trocados em ambas as direções simultaneamente, sem a sobrecarga de abrir e fechar conexões repetidamente.
Como funciona um WebSocket?
Uma conexão WebSocket começa com um handshake iniciado pelo cliente, onde uma solicitação HTTP é enviada ao servidor para atualizar a conexão de HTTP para WebSocket. Se o servidor suportar WebSockets, ele responderá com um código de status 101, indicando que a troca de protocolo foi aceita. Após esse handshake, a conexão WebSocket é estabelecida e tanto o cliente quanto o servidor podem enviar mensagens entre si de forma livre e assíncrona. Isso reduz a latência e melhora a eficiência em comparação com os métodos tradicionais de pesquisa.
Uma conexão WebSocket é uma conexão persistente que permite que dados sejam enviados e recebidos em tempo real por meio de uma única conexão TCP de longa duração. Essa conexão começa com um handshake HTTP e, uma vez estabelecida, permite uma comunicação de baixa latência entre o cliente e o servidor. A conexão permanece aberta até ser explicitamente fechada por qualquer um dos lados, facilitando a troca de dados contínua e eficiente.
WebSocket opera sobre o protocolo TCP, usando a porta 80 para conexões não seguras e a porta 443 para conexões seguras (wss://). Ao contrário do HTTP, que estabelece uma nova conexão para cada solicitação, o WebSocket mantém uma única conexão que pode ser usada para múltiplas mensagens, minimizando a sobrecarga e melhorando o desempenho de aplicações em tempo real.
A API WebSocket fornece uma maneira padronizada de interagir com conexões WebSocket em navegadores da web. Inclui métodos e propriedades para estabelecer uma conexão, enviar e receber mensagens e lidar com eventos como abertura de conexão, recebimento de mensagem e encerramento de conexão. A API permite que os desenvolvedores criem aplicativos da web em tempo real com recursos de comunicação bidirecionais eficientes.