tutorial pengembangan web terbaru

HTML5 Server-Sent Events


Server-Sent Events memungkinkan sebuah halaman web untuk mendapatkan update dari server.


Server-Sent Events - One Way Messaging

Sebuah peristiwa server dikirim adalah ketika sebuah halaman web secara otomatis mendapatkan update dari server.

Hal ini juga mungkin sebelumnya, tetapi halaman web harus bertanya jika ada update yang tersedia. Dengan event server-dikirim, update datang secara otomatis.

Contoh: Facebook/Twitter update, update harga saham, feed berita, hasil olahraga, dll


Dukungan Browser

Angka-angka dalam tabel menentukan versi browser pertama yang mendukung penuh event server-dikirim.

API
SSE 6.0 Tidak didukung 6.0 5.0 11,5

Menerima Server-Sent Pemberitahuan Kegiatan

The EventSource objek digunakan untuk menerima pemberitahuan acara server dikirim:

Contoh

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

Contoh menjelaskan:

  • Buat baru EventSource objek, dan menentukan URL dari halaman mengirimkan update (in this example "demo_sse.php")
  • Setiap kali update diterima, onmessage peristiwa terjadi
  • Ketika onmessage peristiwa terjadi, menempatkan data yang diterima ke dalam elemen dengan id="result"

Periksa Server-Sent Events Dukungan

Dalam tryit contoh di atas ada beberapa baris tambahan kode untuk memeriksa dukungan browser untuk acara server dikirim:

if(typeof(EventSource) !== "undefined") {
    // Yes! Server-sent events support!
    // Some code.....
} else {
    // Sorry! No server-sent events support..
}

Server-Side Kode Contoh

Untuk contoh di atas untuk bekerja, Anda memerlukan server mampu mengirim update data (seperti PHP atau ASP).

Server-side sintaks streaming acara sederhana. Mengatur "Content-Type" header "text/event-stream" . Sekarang Anda dapat mulai mengirim aliran acara.

Kode PHP (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();
?>

Kode di ASP (VB) (demo_sse.asp) :

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

Kode menjelaskan:

  • Mengatur "Content-Type" header "text/event-stream"
  • Menentukan bahwa halaman tidak harus cache
  • Output data untuk mengirim ( Always start with "data: ")
  • Menyiram output data kembali ke halaman web

The EventSource Obyek

Dalam contoh di atas kita menggunakan event onmessage untuk mendapatkan pesan. Tapi peristiwa lain juga tersedia:

Acara Deskripsi
onopen Ketika koneksi ke server dibuka
onmessage Ketika pesan diterima
onerror Ketika terjadi kesalahan