HTML5 Server-Sent Events (Server-Sent Events)
HTML5 Server mengirim peristiwa (server-mengirim event) memungkinkan halaman web untuk mendapatkan update dari server.
Server-Sent Events - pesan cara
Acara Server-Sent adalah website secara otomatis mendapatkan update dari server.
Sebelumnya juga dapat melakukannya, asalkan halaman harus bertanya jika pembaruan tersedia. server akan mengirimkan acara, update akan tiba secara otomatis.
Contoh: update Facebook / Twitter, update valuasi, blog baru, hasil turnamen dan sebagainya.
Dukungan Browser
Semua browser utama yang didukung oleh server akan mengirimkan acara, selain Internet Explorer.
Menerima Server-Sent Pemberitahuan Kegiatan
EventSource objek digunakan untuk menerima pemberitahuan acara dikirim oleh server:
contoh
source.onmessage=function(event)
{
document.getElementById("result").innerHTML+=event.data + "<br>";
};
Coba »
contoh analisis:
- EventSource membuat objek baru, dan kemudian mengirim URL pembaruan peraturan halaman (dalam hal ini, "demo_sse.php")
- Setiap menerima update, acara onmessage terjadi
- Ketika acara onmessage terjadi, data yang diterima didorong ke dalam id "hasil" elemen dalam
Deteksi Server-Sent Events Dukungan
Contoh-contoh berikut, kita menulis beberapa kode tambahan untuk mendeteksi browser ke server untuk mengirim acara yang didukung oleh:
{
// Browser mendukung Server-Sent
//Beberapa kode idid.
}
lain
{
// Browser tidak mendukung Server-Sent id
}
Contoh kode sisi server
Untuk membuat contoh di atas, Anda dapat berjalan, Anda juga perlu untuk dapat mengirim data untuk memperbarui server (seperti PHP dan ASP).
Sintaks server-side event streaming sangat sederhana. The "Content-Type" header diatur ke "text / event-stream". Sekarang Anda dapat mulai mengirim aliran acara.
contoh
header ( 'Content-Type: text / event-stream');
header ( 'Cache-Control: no -cache');
$ Waktu = date ( 'r' );
echo "Data: Waktu server : {$ waktu} \ n \ n";
flush ();
?>
kode ASP (VB) (demo_sse.asp):
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>
Kode penjelasan:
- Header "Content-Type" diatur ke "text / event-stream"
- Penyediaan tidak cache halaman
- Tanggal transmisi keluaran (selalu "Data:" di awal)
- Refresh halaman untuk output data
benda EventSource
Dalam contoh di atas, kita digunakan untuk mendapatkan event pesan onmessage. Namun, Anda juga dapat menggunakan acara lainnya:
事件 | 描述 |
---|---|
onopen | 当通往服务器的连接被打开 |
onmessage | 当接收到消息 |
onerror | 当发生错误 |