Sobes.tech
Junior

Na čo sa používajú sokety vo webovom vývoji?

sobes.tech AI

Odpoveď od AI

Pre obojsmernú výmenu dát medzi klientom (prehliadačom) a serverom v reálnom čase. Na rozdiel od tradičného HTTP, kde klient iniciuje požiadavku a server odpovedá, sokety umožňujú serveru posielať dáta klientovi kedykoľvek bez predchádzajúcej požiadavky.

Príklady použitia:

  • Chatové aplikácie: Okamžité doručenie správ medzi používateľmi.
  • Online hry: Synchronizácia stavov hráčov a herného sveta v reálnom čase.
  • Obchodné platformy: Aktualizácia kurzov akcií alebo kryptomien bez obnovenia stránky.
  • Upozornenia: Odosielanie push upozornení používateľom pri zmene stavu objednávky, nová správa atď.
  • Spoločná úprava dokumentov: Synchronizácia zmien medzi viacerými používateľmi.

Sokety sú implementované nad protokolom TCP a zvyčajne používajú protokol WebSocket, ktorý zabezpečuje stály spoj medzi klientom a serverom po počiatočnom handshake HTTP.

// Príklad klientského kódu na nadviazanie WebSocket spojenia
const ws = new WebSocket('ws://localhost:8080'); // Adresa WebSocket servera

ws.onopen = () => {
  // Spojenie nadviazané
  console.log('WebSocket spojenie nadviazané');
  ws.send('Ahoj, server!'); // Odoslanie správy na server
};

ws.onmessage = (event) => {
  // Správa prijatá zo servera
  console.log('Správa zo servera:', event.data);
};

ws.onclose = (event) => {
  // Spojenie ukončené
  if (event.wasClean) {
    console.log(`Spojenie čisto ukončené, kód=${event.code} dôvod=${event.reason}`);
  } else {
    console.error('Spojenie prerušení');
  }
};

ws.onerror = (error) => {
  // Chyba pri práci so spojom
  console.error('WebSocket chyba:', error);
};

WebSocket spojenie má nízke náklady na overhead v porovnaní s neustálymi HTTP požiadavkami (polling alebo long polling), čo ho robí efektívnejším pre aplikácie, ktoré vyžadujú častú výmenu dát v reálnom čase.