Przejdź do głównej zawartości

65. WebSocket vs Server-Sent Events — porównanie i implementacja

WebSocket vs Server-Sent Events

WebSocket otwiera dwukierunkowy kanał (klient ↔ serwer). SSE (Server-Sent Events) to jednostronny push od serwera do klienta przez zwykłe połączenie HTTP. Oba rozwiązują problem real-time, ale różnią się złożonością, wydajnością i zastosowaniami.

  • SSE działa przez zwykły PHP bez biblioteki serwera WebSocket
  • WebSocket jest lepszy dla czatów i gier; SSE dla live feedów i powiadomień
  • Porównanie tych technologii to częste pytanie rekrutacyjne
  1. Wyjaśnić czym jest WebSocket i SSE
  2. Porównać techniczne różnice: protokół, kierunkowość, wsparcie proxy
  3. Pokazać implementację SSE w PHP (prosty endpoint)
  4. Omówić kiedy wybrać WebSocket a kiedy SSE
  1. WebSocket — protokół ws://, handshake, ramki, dwukierunkowy
  2. SSE — HTTP text/event-stream, jednostronny push od serwera
  3. Porównanie: protokół, kierunek, reconnect, wsparcie przeglądarek
  4. SSE w PHP — endpoint zwracający Content-Type: text/event-stream
  5. JavaScript EventSource API — obsługa SSE po stronie klienta
  6. WebSocket — kiedy potrzebny (czat, gra, trading)
  7. SSE — kiedy wystarczy (live feed, powiadomienia, progress bar)

Przykład 1

PHP endpoint SSE: pętla while z flushem

Przykład 2

JavaScript EventSource: nasłuchiwanie zdarzeń

Przykład 3

Tabela porównawcza: WebSocket vs SSE vs Polling
  1. Wstęp — potrzeba real-time
  2. HTTP polling vs SSE vs WebSocket
  3. WebSocket — szczegóły techniczne
  4. SSE — szczegóły techniczne
  5. Implementacja SSE w PHP
  6. Implementacja klienta JS
  7. Kiedy co wybrać — tabela decyzyjna
  8. Podsumowanie i bibliografia

Zaimplementuj live progress bar przez SSE!

Napisz endpoint PHP zwracający postęp (0%, 25%, 50%…) co sekundę przez SSE. Odbierz to w JavaScript przez EventSource. Świetna demonstracja.