Junior
Milleks kasutatakse socket'eid veebiarenduses?
sobes.tech AI
Vastus AI-lt
Kahepoolne andmevahetus klienti (brauseri) ja serveri vahel reaalajas. Erinevalt tavapärasest HTTP-st, kus klient algatab päringu ja server vastab, võimaldavad soketid serveril saata andmeid kliendile igal ajal ilma eelneva päringuta:
Kasutusnäited:
- Vestlusrakendused: Sõnumite kohene edastamine kasutajate vahel.
- Veebimängud: Mängijate ja mängumaailma seisundi sünkroniseerimine reaalajas.
- Kaubandusalased platvormid: Aktsiate või krüptovaluutade hindade uuendamine ilma lehte uuesti laadimata.
- Teavitused: Push-teavituste saatmine kasutajatele tellimuse staatuse muutmisel, uue sõnumi saamisel jms.
- Dokumentide ühine redigeerimine: Muudatuste sünkroniseerimine mitme kasutaja vahel.
Sokette rakendatakse TCP protokolli peal ning tavaliselt kasutatakse WebSocket protokolli, mis tagab püsiva ühenduse kliendi ja serveri vahel pärast esmast HTTP-kättesaamist.
// Näide kliendikoodist WebSocket ühenduse loomiseks
const ws = new WebSocket('ws://localhost:8080'); // WebSocket serveri aadress
ws.onopen = () => {
// Ühendus on loodud
console.log('WebSocket ühendus on loodud');
ws.send('Tere, server!'); // Sõnumi saatmine serverile
};
ws.onmessage = (event) => {
// Sõnum serverilt saadud
console.log('Sõnum serverilt:', event.data);
};
ws.onclose = (event) => {
// Ühendus suletud
if (event.wasClean) {
console.log(`Ühendus suletud puhtalt, kood=${event.code} põhjus=${event.reason}`);
} else {
console.error('Ühendus katkestati');
}
};
ws.onerror = (error) => {
// Viga
console.error('WebSocket viga:', error);
};
WebSocket-ühendus on madala koormusega võrreldes pidevate HTTP-päringutega (polling või long polling), muutes selle tõhusamaks rakendustele, mis nõuavad sagedast andmevahetust reaalajas.