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