Sobes.tech
Middle+

HTML5-də server-sent hadisələri niyə daxil edildi?

sobes.tech Süni İntellekt

AI-dan cavab

Server və müştəri arasında tək istiqamətli əlaqə kanalı qurmaq üçün. Server əlaqə qurulduqdan sonra istənilən vaxt müştəriyə məlumat göndərə bilər.

Əsas xüsusiyyətlər və üstünlüklər:

  • Effektivlik: Adi HTTP əlaqəsi istifadə olunur, polling ilə müqayisədə əlavə xərcləri azaldır.
  • Sadəlik: Server tərəfindən göndərilən hadisələr API-si (SSE) WebSocket-lərdən daha sadədir və tək istiqamətli əlaqə üçün uyğundur.
  • Avtomatik yenidən qoşulma: Brauzer əlaqə kəsildikdə avtomatik yenidən qoşulmağa çalışır.
  • Məlumat tiplərinin dəstəyi: text/event-stream formatında mətn məlumatlarının göndərilməsi dəstəklənir.
  • Brauzer dəstəyi: Müasir brauzerlər tərəfindən geniş dəstəklənir.

Tətbiqlər:

  • Xəbər lentlərinin real vaxtda yenilənməsi.
  • Hadisələr haqqında bildirişlər (məsələn, yeni mesajlar).
  • Məlumatların real vaxtda monitorinqi (məsələn, birja qiymətləri).
  • Uzunmüddətli tapşırıqların irəliləyişi.

Bu, ənənəvi polling-ə alternativdir, burada müştəri mütəmadi olaraq serverdən yeniləmələrin olub-olmadığını soruşur. WebSocket-lərdən fərqli olaraq, SSE tək istiqamətlidir və məlumatlar yalnız serverdən müştəriyə ötürülürsə, istifadəsini sadələşdirir.

Müştəri tərəfində nümunə (JavaScript):

const eventSource = new EventSource('/events'); // Serverdən hadisələri almaq üçün URL

eventSource.onmessage = function(event) {
  // Alınan məlumatların işlənməsi
  console.log('Alınan mesaj:', event.data);
};

eventSource.onerror = function(error) {
  // Əlaqə xətalarının idarə olunması
  console.error('Server-Sent Events Xətası:', error);
};

eventSource.addEventListener('customEvent', function(event) {
  // 'customEvent' tipli xüsusi hadisənin işlənməsi
  console.log('Xüsusi hadisə alındı:', event.data);
});

Server tərəfində məlumat formatına nümunə:

event: customEvent
data: {"message": "Salam!"}

data: Sadə mətn mesajı

id: 123 // Hadisə identifikatoru, avtomatik yenidən qoşulma üçün istifadə olunur

retry: 5000 // Növbəti yenidən qoşulma üçün gecikmə (millisaniyə)