En son web geliştirme öğreticiler

HTML Sunucunun Gönderdiği Etkinlikler


Sunucunun Gönderdiği Etkinlikler bir web sayfası, bir sunucudan güncellemeleri almak için izin verir.


Sunucunun Gönderdiği Etkinlikler - Tek Yönlü Mesajlaşma

Bir web sayfası otomatik bir sunucudan güncelleme aldığında bir sunucu gönderilen bir olaydır.

Bu daha önce de mümkündü, ancak herhangi bir güncelleme olup olmadığını web sayfası sormak gerekir. Sunucu gönderilen etkinlik sayesinde güncellemeler otomatik olarak gelir.

Örnekler: Facebook/Twitter güncellemelerini, hisse senedi fiyatı güncellemeleri, haber beslemeleri, spor sonuçları, vb


Tarayıcı Desteği

Tablodaki rakamlar tamamen sunucu gönderilen etkinliklere destek ilk tarayıcı sürümü belirtin.

API
SSE 6 Desteklenmiyor 6 5.0 11.5

Sunucu Tarafından Gönderilen Olay Bildirim Al

EventSource nesne sunucu gönderilen olay bildirimleri almak için kullanılır:

Örnek

var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
    document.getElementById("result").innerHTML += event.data + "<br>";
};
Kendin dene "

Örnek açıklanmıştır:

  • Yeni oluştur EventSource nesnesi ve güncellemeler gönderme sayfanın URL'sini belirtin (in this example "demo_sse.php")
  • Bir güncelleme alındığında her zaman, onmessage olay meydana
  • Bir zaman onmessage olayı oluşur ile elemanına alınan veri koymak id="result"

Sunucunun Gönderdiği Etkinlikler Destek edin

Gelen tryit Örneğin yukarıdaki kod bazı ekstra çizgiler sunucu gönderilen olaylar için tarayıcı desteği kontrol etmek vardı:

if(typeof(EventSource) !== "undefined") {
    // Yes! Server-sent events support!
    // Sunucu Tarafı Kod Örneği

Yukarıdaki örnek çalışması için, (PHP veya ASP gibi) veri güncellemelerini gönderme yeteneği olan bir sunucuya ihtiyacımız var.

Sunucu tarafı olay akışı sözdizimi basittir. Set "Content-Type" için başlığa "text/event-stream" . Şimdi etkinlik akışlarını göndermeye başlayabilirsiniz.

PHP kod (demo_sse.php) :

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>

Kod ASP (VB) (demo_sse.asp) :

<%
Response.ContentType = "text/event-stream"
Response.Expires = -1
Response.Write("data: The server time is: " & now())
Response.Flush()
%>

Kod açıkladı:

  • Set "Content-Type" için başlığa "text/event-stream"
  • sayfa önbelleğe gerektiğini belirtin
  • Veri göndermek için Çıktı ( Always start with "data: ")
  • Web sayfasına geri çıkış verilerini boşaltır

EventSource Nesne

örneklerde biz iletileri almak için onMessage olayı kullanılan yukarıda. Ama diğer etkinlikler de mevcuttur:

Olaylar Açıklama
onopen sunucuya bir bağlantı açıldığında
onmessage Bir ileti alındığında
onerror Ne zaman bir hata oluşursa