Cara menggunakan acara html5 server-sent
- 1948
- 441
- Dr. Travis Bahringer
Objektif
Setelah membaca tutorial ini, Anda harus dapat memahami dan memanfaatkan acara HTML5 Server-Sent.
Persyaratan
- Tidak ada persyaratan khusus yang diperlukan
Konvensi
- # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root
langsung sebagai pengguna root atau dengan menggunakansudo
memerintah - $ - Diberikan perintah linux untuk dieksekusi sebagai pengguna biasa
Perkenalan
Acara server-sent adalah sebuah Html5
teknologi yang memungkinkan klien untuk secara otomatis memantau pemberitahuan acara dari server, dan bereaksi sesuai kebutuhan. Teknologi ini sangat berguna untuk memberi tahu acara langsung, untuk mengimplementasikan, misalnya, aplikasi pesan langsung atau umpan berita. Dalam tutorial ini kita akan melihat cara mengimplementasikan teknologi ini menggunakan PHP dan JavaScript.
Contoh sederhana
Demi tutorial ini, kami akan bekerja dengan daftar "hewan" yang akan ditampilkan di halaman HTML sederhana. Sementara dalam aplikasi dunia nyata, data akan disimpan dan diambil dari database, dalam hal ini, untuk kesederhanaan, kami akan menggunakan array PHP. Yang ingin kami peroleh adalah pemberitahuan waktu nyata tentang perubahan dalam daftar hewan, sehingga kami dapat memperbarui halaman HTML kami, tanpa harus menyegarkannya.
Kode sisi server
Untuk memulainya, mari kita mengisi berbagai hewan kecil kita di Hewan.php
File (kami bekerja di direktori root dari server web kami virtualhost):
Menyalin Simpan dan tutup file sebagai Hewan.php
. Sekarang, untuk bagian terpenting: kita harus menulis skrip yang akan memancarkan pesan yang akhir-akhir ini digunakan oleh kode javascript sisi klien kami. Dengan banyak fantasi kita akan memberi nama naskahnya naskah.php
. Kode ini sangat sederhana, ini dia:
Menyalin Hal pertama yang perlu diperhatikan di sini adalah bahwa kami menelepon header
Fungsi dalam baris 2-3: Ini adalah fungsi yang digunakan untuk mengirim header http mentah
. Dalam hal ini kami menyebutnya dua kali: yang pertama di baris 2 untuk mengatur Kontrol cache
bidang header dan tentukan arahan caching (tidak ada cache halaman), yang kedua dalam baris 3, untuk mengatur Jenis konten
ke Teks/Event-stream
. Pengaturan header tersebut diperlukan agar skrip kami berfungsi dengan benar. Penting juga untuk memperhatikan bahwa bekerja dengan benar, header
Fungsi harus selalu dipanggil sebelum output lain dibuat.
Setelah menyiapkan header HTML, kami hanya menggunakan membutuhkan_once
pernyataan di baris 6 untuk meminta konten dari Hewan.php
file, yang berisi array yang kami tulis sebelumnya. Dalam skenario kasus nyata, ini akan digantikan oleh a Kueri SQL
untuk mengambil informasi tersebut dari database.
Akhirnya di baris 9-11, kami mengirimkan tanggapan kami kepada klien: JSON-encoded
Array "Hewan". Suatu hal yang sangat penting untuk diperhatikan: Format acara sisi server mengharuskan setiap respons yang dikirim oleh server diawali oleh data:
string dan diikuti oleh dua Karakter baru
. Dalam hal ini kami menggunakan \N
Karakter baru karena kami berjalan di platform seperti UNIX; Untuk memastikan kompatibilitas lintas platform, kami akan menggunakan Php_eol
konstan.
Bahkan mungkin untuk memecahkan pesan respons pada beberapa baris: dalam hal ini setiap baris, seperti yang dikatakan sebelumnya, harus dimulai dengan "data:" dan harus diikuti oleh satu karakter garis baru tunggal. Diperlukan garis baru tambahan hanya pada baris terakhir.
Server juga dapat mengontrol seberapa sering klien harus mencoba untuk terhubung kembali (default 3
detik), dan nama peristiwa
(default adalah "pesan") yang dikirim ke klien. Untuk menyesuaikan yang pertama, kita harus menggunakan mencoba kembali
Petunjuk diikuti oleh interval waktu yang diinginkan, dinyatakan dalam milidetik. Misalnya, untuk mengatur interval 1 detik:
echo "coba lagi: 1000 \ n";
Perhatikan bahwa bahkan di sini, diperlukan garis baru yang tertinggal. Untuk mengubah nama acara, sebagai gantinya, kita harus menggunakan peristiwa
pengarahan:
echo "acara: CustomEvent \ n";
Acara default adalah "pesan": Ini penting karena acara tersebut harus ditentukan dalam kode JavaScript klien saat menambahkan pendengar acara, seperti yang akan kita lihat sebentar lagi.
Setelah mengirimkan tanggapan kami, kami menelepon menyiram
Fungsi: Ini diperlukan untuk ouput data ke klien.
Kode samping klien
Hal pertama yang akan kami lakukan dengan sisi klien adalah menyiapkan file HTML kami dengan daftar hewan yang tersedia:
Menyalin Ini benar -benar beberapa HTML dasar dengan sedikit PHP untuk menampilkan daftar hewan pada saat pemuatan halaman dan untuk memasukkan kami .file js (skrip.js), tetapi akan server tujuan kita. Sekarang, mari kita lihat bagaimana sebenarnya kita dapat menggunakan acara sisi server. Hal pertama yang harus kami lakukan adalah instantiate Objek sumber acara
. Dalam file JavaScript kami, tulis:
Biarkan eventsource = eventsource baru ('skrip.php ');
Menyalin Seperti yang Anda lihat, kami meneruskan jalur ke skrip server kami sebagai argumen di Eventsource
Konstruktor Objek. Objek ini akan membuka koneksi ke server. Sekarang, kita harus menambahkan pendengar acara
, Sehingga kita dapat melakukan beberapa tindakan saat pesan diterima dari server:
Biarkan eventsource = eventsource baru ('skrip.php '); Eventsource.AddEventListener ("Message", Function (Event) Let Data = JSON.Parse (acara.data); Biarkan ListElements = dokumen.GetElementsByTagname ("Li"); untuk (biarkan i = 0; i < listElements.length; i++) let animal = listElements[i].textContent; if (!data.includes(animal)) listElements[i].style.color = "red"; );
Menyalin Saat pesan diterima, kami menggunakan Json.parse
Metode dalam baris 4 untuk mengubah data yang dikirim oleh server (string, yang terkandung di data
Properti Objek Acara), ke dalam array JavaScript.
Setelah itu kami mengulang di baris 7-11 melalui semua elemen dengan Tag, yang merupakan elemen dari daftar hewan kami: Jika beberapa elemen tampaknya tidak lagi berada di array yang dikirim oleh server, warna teks yang terkandung dalam daftar diubah menjadi merah, karena "hewan" adalah tidak lebih lama tersedia (solusi yang lebih baik adalah hanya memasukkan nama elemen yang diubah atau hilang dalam respons server, tetapi tujuan kami di sini hanya untuk menunjukkan bagaimana teknologi bekerja). Perubahan halaman akan terjadi secara real time, jadi tidak perlu menyegarkan. Anda dapat mengamati bagaimana halaman kami mengambil keuntungan dari acara yang dikirim server, dalam video di bawah ini:
Seperti yang Anda lihat, segera setelah "kucing" dihapus dari array "Hewan" (sumber data kami) elemen yang ditampilkan di halaman HTML dimodifikasi, untuk mencerminkan perubahan itu.
Aliran data antara server dan klien dapat terganggu dengan menggunakan menutup
metode Eventsource
obyek:
Eventsource.menutup()
Untuk menangani koneksi membuka
, Dan kesalahan
acara, pendengar acara khusus dapat ditambahkan ke objek.
Tutorial Linux Terkait:
- Hal -hal yang harus diinstal pada ubuntu 20.04
- Cara Mengirim Pemberitahuan Desktop Menggunakan Notify-Send
- Cara menangani acara ACPI di Linux
- Cara Membangun Aplikasi Tkinter Menggunakan Objek Berorientasi…
- Pengantar Otomatisasi Linux, Alat dan Teknik
- Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
- Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
- Perintah Linux Dasar
- Daftar dan Instalasi Klien FTP di Ubuntu 22.04 Linux…
- Unduh Live CD/DVD Linux