0Pricing
React Academy · Aula

Comparação entre SSE, WebSockets e consulta periódica

Compare SSE (envio unidirecional), WebSockets (bidirecional) e consulta periódica quanto à adequação ao caso de uso e à complexidade.

Comparação entre SSE, WebSockets e consulta periódica é uma aula grátis de React Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.

WebSockets: conexão persistente bidirecional

WebSockets estabelecem uma conexão TCP persistente entre o cliente e o servidor. Ambos os lados podem enviar mensagens a qualquer momento, o que torna WebSockets ideal para comunicação interativa realmente em tempo real: aplicativos de conversa, edição colaborativa de documentos, jogos multijogador e cursores ao vivo. A conexão permanece aberta até ser explicitamente encerrada por qualquer uma das partes.

Eventos enviados pelo servidor: envio unidirecional

SSE (eventos enviados pelo servidor) usa uma conexão HTTP comum na qual o servidor transmite dados para o cliente como uma série de eventos. A conexão é unidirecional: somente o servidor envia dados. O cliente não pode enviar mensagens de volta pela conexão SSE — para isso, ele faz solicitações HTTP separadas. O SSE é implementado por meio da API EventSource do navegador.

Sondagem curta: mais simples e mais dispendiosa

Sondagem curta significa que o cliente envia uma solicitação HTTP em um intervalo fixo (por exemplo, a cada 5 segundos): "Há alguma atualização?" O servidor responde imediatamente com os dados atuais. Essa é a implementação mais simples, mas também a que mais desperdiça recursos — o cliente faz muitas solicitações quando não há nada novo. É adequada somente para dados que mudam muito lentamente.

Sondagem longa: o servidor mantém a resposta aberta

A sondagem longa melhora a sondagem curta: o cliente faz uma solicitação e o servidor mantém a conexão aberta até que novos dados estejam disponíveis. Quando chegam novos dados, o servidor responde e o cliente faz imediatamente outra solicitação. Isso reduz as respostas desnecessárias, mas ainda tem uma sobrecarga maior do que o SSE, pois cada resposta exige a configuração de uma nova conexão TCP.

Vantagens do SSE

O SSE oferece várias vantagens práticas em relação a WebSockets para o envio de dados do servidor para o cliente: ele funciona sobre HTTP comum (sem atualização do protocolo), portanto passa por proxies corporativos e balanceadores de carga sem configuração especial. O EventSource já inclui reconexão automática. O protocolo baseado em texto é fácil de depurar na aba de rede do navegador.

Limitações do SSE

O SSE tem limitações importantes: aceita somente texto (os dados binários precisam ser codificados em base64), é unidirecional (o cliente não pode enviar dados de volta) e o HTTP/1.1 limita a 6 o número de conexões EventSource simultâneas por domínio (o HTTP/2 multiplexa as conexões, eliminando esse limite). Para comunicação bidirecional, o SSE exige chamadas REST complementares.

Casos de uso do SSE

O SSE é ideal para: painéis em tempo real que exibem métricas, fluxos de notificações que enviam novos alertas, barras de progresso para processos longos no servidor, fluxos de redes sociais em tempo real, cotações de ações e interfaces de conversa nas quais as mensagens fluem somente do servidor para o cliente (você envia mensagens separadamente com POST). Todos esses são cenários em que o servidor inicia as atualizações.

Casos de uso de WebSocket

WebSockets são necessários quando você precisa de comunicação bidirecional de baixa latência: conversas em tempo real nas quais as mensagens fluem nos dois sentidos por uma única conexão, edição colaborativa (no estilo do Google Docs), jogos multijogador em que as ações do cliente e as atualizações do servidor acontecem rapidamente, leilões ao vivo e plataformas de negociação. A comunicação bidirecional justifica a complexidade.

HTTP/2 e SSE

O HTTP/2 melhora significativamente a viabilidade do SSE. A multiplexação da conexão faz com que todos os fluxos SSE de um domínio compartilhem uma única conexão TCP, eliminando o limite de conexões por domínio. Se o seu servidor oferecer suporte a HTTP/2, o SSE se tornará ainda mais prático para painéis com vários fluxos de dados simultâneos.

Escolhendo a tecnologia certa

Estrutura de decisão: se você precisa de comunicação bidirecional de baixa latência → WebSockets. Se o servidor envia atualizações e o cliente apenas lê → SSE. Se você precisa de atualizações ocasionais e a simplicidade é importante → sondagem. Se a API do servidor já existe e você não pode adicionar SSE → sondagem. Comece pela solução mais simples que atenda aos seus requisitos de latência.

Comparação da sobrecarga dos protocolos

O enquadramento do WebSocket adiciona de 2 a 14 bytes por mensagem após a negociação inicial. O SSE adiciona cabeçalhos HTTP uma vez por conexão e, depois, texto delimitado por quebras de linha. A sondagem curta inclui os cabeçalhos completos da solicitação e da resposta HTTP em cada sondagem. Para dados de alta frequência, WebSockets vencem em termos de sobrecarga. Para envios ocasionais do servidor, o SSE é mais simples e oferece uma sobrecarga aceitável.

SSE e WebSocket: direcionalidade

Qual é a principal diferença direcional entre SSE e WebSockets?

Recapitulação da lição: comparação de tecnologias em tempo real

WebSockets: conexão TCP persistente bidirecional (conversas, jogos e edição colaborativa). SSE: envio HTTP unidirecional do servidor para o cliente por meio da API EventSource (notificações, painéis e fluxos). Sondagem curta: solicitações em intervalos fixos (mais simples e mais dispendiosa). Sondagem longa: o servidor mantém a resposta aberta até que haja dados disponíveis (menos solicitações e maior latência). Vantagens do SSE: funciona por meio de proxies e oferece reconexão automática. Limitações do SSE: somente texto, comunicação unidirecional e limites de conexões no HTTP/1.1.

Perguntas Frequentes

A aula “Comparação entre SSE, WebSockets e consulta periódica” é grátis?

Sim — o texto completo de “Comparação entre SSE, WebSockets e consulta periódica” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.

O que vou aprender em “Comparação entre SSE, WebSockets e consulta periódica”?

Compare SSE (envio unidirecional), WebSockets (bidirecional) e consulta periódica quanto à adequação ao caso de uso e à complexidade. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar React Academy?

Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Comparação entre SSE, WebSockets e consulta periódica”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de React Academy?

Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Comparação entre SSE, WebSockets e consulta periódica
  2. Consumindo fluxos SSE no React com EventSource
  3. Padrão de sondagem longa e lógica de reconexão
  4. Criando um feed de notificações em tempo real
← Voltar para React Academy