Sobes.tech
Junior

Zašto se soketi koriste u veb razvoju?

sobes.tech АИ

Одговор од АИ

Za dvostranu razmenu podataka između klijenta (pregledača) i servera u realnom vremenu. Za razliku od tradicionalnog HTTP-a, gde klijent inicira zahtev, a server odgovara, soketi omogućavaju serveru da šalje podatke klijentu u bilo kom trenutku bez prethodnog zahteva.

Primeri upotrebe:

  • Aplikacije za ćaskanje: Trenutna dostava poruka između korisnika.
  • Online igre: Sinhronizacija stanja igrača i sveta igre u realnom vremenu.
  • Tržišne platforme: Ažuriranje cena akcija ili kriptovaluta bez osvežavanja stranice.
  • Obaveštenja: Slanje push obaveštenja korisnicima pri promeni statusa porudžbine, novoj poruci itd.
  • Zajednička uređivanja dokumenata: Sinhronizacija promena između više korisnika.

Soketi se implementiraju na TCP protokolu i obično koriste WebSocket protokol, koji obezbeđuje stalnu vezu između klijenta i servera nakon početnog HTTP rukovanja.

// Primer klijentskog koda za uspostavljanje WebSocket veze
const ws = new WebSocket('ws://localhost:8080'); // Adresa WebSocket servera

ws.onopen = () => {
  // Veza uspostavljena
  console.log('WebSocket veza uspostavljena');
  ws.send('Zdravo, server!'); // Slanje poruke serveru
};

ws.onmessage = (event) => {
  // Poruka primljena od servera
  console.log('Poruka od servera:', event.data);
};

ws.onclose = (event) => {
  // Veza zatvorena
  if (event.wasClean) {
    console.log(`Veza zatvorena čisto, kod=${event.code} razlog=${event.reason}`);
  } else {
    console.error('Veza prekinuta');
  }
};

ws.onerror = (error) => {
  // Greška pri radu sa vezom
  console.error('WebSocket greška:', error);
};

WebSocket veza ima niske troškove overhead-a u poređenju sa stalnim HTTP zahtevima (polling ili long polling), što je čini efikasnijom za aplikacije koje zahtevaju čestu razmenu podataka u realnom vremenu.