Junior
Veb inkişafında socketlər nə üçün istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
İstifadəçi (brauzer) və server arasında real vaxtda ikitərəfli məlumat mübadiləsi üçün. Ənənəvi HTTP-dən fərqli olaraq, burada müştəri sorğu göndərir və server cavab verir, lakin soketlər serverə istənilən vaxt məlumat göndərməyə imkan verir, əvvəlcədən sorğu tələb olunmur.
İstifadə nümunələri:
- Söhbət tətbiqləri: İstifadəçilər arasında dərhal mesajların çatdırılması.
- Onlayn oyunlar: Oyunçuların və oyun dünyasının vəziyyətinin real vaxtda sinxronizasiyası.
- Ticarət platformaları: Səhmlər və ya kriptovalyuta qiymətlərinin səhifəni yeniləmədən yenilənməsi.
- Bildirişlər: Sifariş vəziyyətində dəyişiklik, yeni mesaj və s. istifadəçilərə push bildirişlərinin göndərilməsi.
- Sənədlərin birgə redaktəsi: Bir neçə istifadəçi arasında dəyişikliklərin sinxronizasiyası.
Soketlər TCP protokolü üzərində həyata keçirilir və adətən WebSocket protokolundan istifadə edir, bu da ilkin HTTP əl sıxışmasından sonra müştəri və server arasında davamlı əlaqəni təmin edir.
// WebSocket əlaqəsini qurmaq üçün müştəri kod nümunəsi
const ws = new WebSocket('ws://localhost:8080'); // WebSocket server ünvanı
ws.onopen = () => {
// Əlaqə quruldu
console.log('WebSocket əlaqəsi quruldu');
ws.send('Salam, server!'); // Serverə mesaj göndərmək
};
ws.onmessage = (event) => {
// Serverdən mesaj alındı
console.log('Serverdən mesaj:', event.data);
};
ws.onclose = (event) => {
// Əlaqə bağlandı
if (event.wasClean) {
console.log(`Təmiz şəkildə bağlandı, kod=${event.code} səbəb=${event.reason}`);
} else {
console.error('Əlaqə kəsildi');
}
};
ws.onerror = (error) => {
// Əlaqə ilə bağlı xəta
console.error('WebSocket xətası:', error);
};
WebSocket əlaqəsinin ümumi HTTP sorğularına (polling və ya long polling) nisbətən aşağı overhead xərcləri var və bu, real vaxtda məlumat mübadiləsini tələb edən tətbiqlər üçün daha səmərəli edir.