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.