Sobes.tech
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.