Junior
Pentru ce sunt folosite socket-urile în dezvoltarea web?
sobes.tech AI
Răspuns de la AI
Pentru schimbul bidirecțional de date între client (browser) și server în timp real. Spre deosebire de HTTP-ul tradițional, unde clientul inițiază solicitarea, iar serverul răspunde, socket-urile permit serverului să trimită date către client în orice moment fără o solicitare prealabilă.
Exemple de utilizare:
- Aplicații de chat: Livrare instantanee a mesajelor între utilizatori.
- Jocuri online: Sincronizarea stării jucătorilor și a lumii jocului în timp real.
- Platforme de tranzacționare: Actualizarea cotelor acțiunilor sau criptomonedelor fără reîncărcarea paginii.
- Notificări: Trimiterea de notificări push utilizatorilor atunci când se schimbă starea comenzii, apare un mesaj nou etc.
- Editare colaborativă de documente: Sincronizarea modificărilor între mai mulți utilizatori.
Socket-urile sunt implementate peste protocolul TCP și utilizează de obicei protocolul WebSocket, care asigură o conexiune constantă între client și server după handshake-ul HTTP inițial.
// Exemplu de cod client pentru stabilirea unei conexiuni WebSocket
const ws = new WebSocket('ws://localhost:8080'); // Adresa serverului WebSocket
ws.onopen = () => {
// Conexiune stabilită
console.log('Conexiune WebSocket stabilită');
ws.send('Salut, server!'); // Trimitere mesaj către server
};
ws.onmessage = (event) => {
// Mesaj primit de la server
console.log('Mesaj de la server:', event.data);
};
ws.onclose = (event) => {
// Conexiune închisă
if (event.wasClean) {
console.log(`Conexiune închisă curat, cod=${event.code} motiv=${event.reason}`);
} else {
console.error('Conexiune întreruptă');
}
};
ws.onerror = (error) => {
// Eroare la lucrul cu conexiunea
console.error('Eroare WebSocket:', error);
};
Conexiunea WebSocket are costuri de overhead scăzute comparativ cu solicitările HTTP constante (polling sau long polling), ceea ce o face mai eficientă pentru aplicațiile care necesită schimb de date frecvent în timp real.