Skip to main content

Server-sent-Events x WebSockets x Long-Polling

  • Server-sent-Events x WebSockets x Long-Polling

Server-sent-Events x WebSockets x Long-Polling

1️⃣ Long-Polling:

Essa técnica é um "remendo" no tradicional HTTP. O cliente envia uma solicitação ao servidor, que mantém a conexão aberta até que haja novos dados. É uma solução fácil de implementar, mas tem problemas de escalabilidade e eficiência, já que mantém conexões abertas mesmo sem novos dados.

  • 🌟 Prós:
    • Funciona em todos os navegadores
  • Contra:
    • Constantes conexão/desconexão não é o ideal por ser lento

2️⃣ Websockets:

Essa tecnologia permite uma comunicação bidirecional entre cliente e servidor. É mais eficiente que o long-polling, mas a implementação é mais complexa e exige maior controle de conexões. Por outro lado, é a solução ideal para comunicação entre client em servidor (ambos precisam enviar mensagens)

  • 🌟 Prós:
    • Conexão sempre disponível
  • Contra:
    • Os conjuntos de soquetes podem ser esgotados quando vários usuários e guias estão conectados

3️⃣ Server-Sent Events:

Eis o protagonista da nossa conversa! O SSE permite que o servidor envie atualizações unidirecionais ao cliente. É mais simples de implementar que os Websockets e oferece melhor desempenho e escalabilidade que o long-polling. Como assim? Vamos ver! 🧐

  • 🌟 Funcionamento:

    • O SSE usa a API EventSource do JavaScript para estabelecer uma conexão HTTP persistente com o servidor. Sempre que o servidor tem novos dados, ele os envia como um evento para o cliente, que os processa e atualiza a interface do usuário.
  • 🌟 Vantagens:

    • Simplicidade: A implementação é mais fácil que os Websockets, já que é baseada em HTTP.
    • Escalabilidade: Como é unidirecional, reduz a sobrecarga de manter conexões bidirecionais.
    • Recuperação de conexão: Se a conexão for perdida, o SSE tenta se reconectar automaticamente.
  • 🌟 Possibilidade de escala:

    • O SSE é ótimo para aplicações que precisam apenas de comunicação unidirecional, como atualizações de notícias, feeds de redes sociais e dashboards. Isso permite que você alcance um alto nível de escalabilidade sem comprometer a eficiência.