Sobes.tech
Junior — Middle

Czym różni się protokół WebSocket od standardowego protokołu HTTP podczas wymiany danych w sieci?

sobes.tech AI

Odpowiedź od AI

Główna różnica między WebSocket a standardowym HTTP polega na sposobie nawiązywania i utrzymywania połączenia do wymiany danych:

  • HTTP to protokół żądanie-odpowiedź. Klient wysyła żądanie, serwer odpowiada, a połączenie zazwyczaj jest zamykane. Aby uzyskać nowe dane, klient musi wysłać nowe żądanie.

  • WebSocket to protokół, który ustanawia trwałe, dwukierunkowe połączenie między klientem a serwerem. Po początkowym uścisku dłoni HTTP, połączenie przełącza się w tryb WebSocket, a obie strony mogą wysyłać dane w dowolnym momencie bez konieczności powtarzania żądań.

Zalety WebSocket:

  • Niskie opóźnienie przy wymianie danych
  • Wydajność przy częstym wymianie wiadomości
  • Obsługa w czasie rzeczywistym (np. czaty, gry, dane finansowe)

Przykład użycia w Node.js:

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', ws => {
  ws.on('message', message => {
    console.log(`Odebrano wiadomość: ${message}`);
    ws.send(`Odpowiedź: ${message}`);
  });
});