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.