Jadual Kandungan
Apakah peristiwa yang dilanda pelayan?
Bagaimana cara menetapkan sokongan SSE di sisi pelayan?
Soalan dan nota yang sering ditanya
Bilakah saya harus menggunakan SSE dan bukannya WebSocket?
Rumah hujung hadapan web Tutorial H5 Menerima data masa nyata dengan acara HTML5 Server-SENT (SSE).

Menerima data masa nyata dengan acara HTML5 Server-SENT (SSE).

Jul 02, 2025 pm 04:46 PM
html5 sse

Acara Server-Sent (SSE) adalah penyelesaian ringan yang disediakan oleh HTML5 untuk menolak kemas kini masa nyata kepada penyemak imbas. Ia menyedari komunikasi sehala melalui sambungan HTTP yang panjang, yang sesuai untuk pasaran saham, pemberitahuan dan senario lain. Apabila menggunakannya, buat contoh Eventsource dan dengar mesej: Const Eventsource = New Eventsource ('/Stream'); eventsource.onMessage = function (event) {console.log ('Mesej yang diterima:', event.data); }; Pelayan perlu menetapkan jenis kandungan ke teks/aliran peristiwa, pastikan sambungan terbuka, dan data output: Kandungan \ n \ n dalam format. Pertimbangan umum termasuk: 1. Konfigurasi CORS untuk menyelesaikan masalah silang domain; 2. Kawalan semula masa untuk mencapai penyambungan semula automatik; 3. Menggunakan Acara: Tentukan jenis acara tersuai; 4. Menguruskan masa tamat sambungan untuk mengelakkan kebocoran sumber. Berbanding dengan WebSocket, SSE lebih mudah dan mudah digunakan, menyokong protokol HTTP untuk menembusi firewall, tetapi hanya komunikasi satu arah dan mempunyai keserasian yang sedikit miskin. Ia sesuai untuk senario push masa nyata tanpa interaksi yang kerap.

Menerima data masa nyata dengan acara HTML5 Server-SENT (SSE).

Dalam pembangunan web, jika anda perlu menolak kemas kini masa nyata dari pelayan ke penyemak imbas, HTML5 menyediakan penyelesaian ringan: acara pelayan-sent (SSE). Berbanding dengan WebSocket, lebih mudah dan mudah dilaksanakan, dan sangat sesuai untuk senario di mana hanya pelayan perlu berkomunikasi sehala kepada pelanggan.

Menerima data masa nyata dengan acara HTML5 Server-SENT (SSE).

Apakah peristiwa yang dilanda pelayan?

Acara Server-Sent adalah sebahagian daripada HTML5, yang membolehkan pelayan menolak data ke pelayar melalui sambungan HTTP Long. Tidak seperti kaedah pengundian tradisional, SSE akan terus dibuka selepas mewujudkan sambungan, dan pelayan boleh menghantar data baru pada bila-bila masa, seperti petikan saham, pemberitahuan masa nyata atau mesej sembang.

Menerima data masa nyata dengan acara HTML5 Server-SENT (SSE).

Penggunaan asasnya adalah untuk membuat contoh EventSource dan menunjuk ke URL di sisi pelayan:

 const Eventsource = New Eventsource ('/Stream');
eventsource.onMessage = function (event) {
    console.log ('Mesej yang diterima:', event.data);
};

Selagi pelayan terus menghantar data, pelanggan boleh terus menerimanya.

Menerima data masa nyata dengan acara HTML5 Server-SENT (SSE).

Bagaimana cara menetapkan sokongan SSE di sisi pelayan?

Bahasa backend yang berbeza mempunyai kaedah pelaksanaan yang berbeza, tetapi titik teras adalah sama: Pastikan sambungan terbuka dan output kandungan dalam format SSE.

Ambil Node.js Express sebagai contoh:

 app.get ('/stream', (req, res) => {
    res.setheader ('kandungan-jenis', 'teks/aliran peristiwa');
    res.setheader ('Cache-Control', 'No-Cache');

    // simulasi menghantar data setInterval (() => {
        res.write (`data: $ {new date ()} \ n \ n`);
    }, 1000);
});

Mata Utama:

  • Tetapkan tajuk tindak balas yang betul, terutamanya text/event-stream
  • Jangan menamatkan tindak balas terlalu awal, pastikan sambungan terbuka
  • Format data mestilah data: 内容\n\n , dan dua garis baru menunjukkan akhir mesej

Bahasa lain seperti Python (Flask), PHP, atau Java Spring Boot boleh dilaksanakan sama.


Soalan dan nota yang sering ditanya

1. Isu-isu silang domain Sekiranya bahagian depan dan back-end tidak berada di bawah nama domain yang sama, CORS perlu dikonfigurasikan untuk memastikan permintaan yang dimulakan EventSource dibenarkan:

 Akses-kawalan-Allow-Origin: *

Atau tentukan nama domain tertentu.

2. Mekanisme Sambung semula Automatik Apabila sambungan terganggu, penyemak imbas secara automatik akan cuba menyambung semula, dan masa menunggu lalai adalah 3 saat. Anda boleh mengawal selang ini di sebelah pelayan:

 Cuba semula: 5000

3. Jenis acara tersuai Sebagai tambahan kepada onmessage lalai, anda juga boleh menentukan nama acara lain:

 Acara: Kemas kini
Data: {"type": "News", "Content": "News News akan datang"}

Pemantauan depan:

 Eventsource.AdDeventListener ('Update', Function (Event) {
    console.log ('Kemas kini diterima:', event.data);
});

4. Masa tamat sambungan dan pelepasan sumber Berhati -hatilah untuk tidak membiarkan sambungan hang selama -lamanya. Pelayan harus mempunyai mekanisme untuk mengesan sama ada pelanggan terputus dan melepaskan sumber dalam masa untuk mengelakkan kebocoran ingatan.


Bilakah saya harus menggunakan SSE dan bukannya WebSocket?

Websocket lebih berkuasa dan menyokong komunikasi dua hala, tetapi juga mempunyai kerumitan yang lebih tinggi. Jika anda hanya memerlukan pelayan untuk menolak maklumat kepada pelanggan dan tidak memerlukan interaksi yang kerap, SSE adalah pilihan yang lebih baik.

Kelebihan termasuk:

  • Memudahkan proses pembangunan, mudah dilaksanakan kedua -dua bahagian depan dan belakang
  • Menyokong penyambungan semula automatik
  • Protokol HTTP standard boleh digunakan untuk memudahkan menembusi firewall

Kelemahannya juga jelas:

  • Hanya komunikasi sehala dari pelayan ke klien yang disokong
  • Keserasian penyemak imbas sedikit miskin (iaitu kelebihan versi dan lebih lama tidak disokong)

Pada dasarnya itu sahaja. SSE tidak rumit, tetapi dalam penggunaan sebenar, anda harus memberi perhatian kepada pengurusan sambungan, pengendalian ralat dan pengoptimuman prestasi. Jika anda hanya ingin membuat sistem pemberitahuan masa nyata yang mudah, SSE adalah pilihan yang ringan dan praktikal.

Atas ialah kandungan terperinci Menerima data masa nyata dengan acara HTML5 Server-SENT (SSE).. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apa itu microdata? HTML5 dijelaskan Apa itu microdata? HTML5 dijelaskan Jun 10, 2025 am 12:09 AM

MicrodataenhanhancesseoandcontentdisplayInsearchResultSbyembedDingStructedDATActoHtml.1)

HTML5 Microdata: Alat Dalam Talian Terbaik HTML5 Microdata: Alat Dalam Talian Terbaik Jun 09, 2025 am 12:06 AM

ThebestonLinetoolsforhtml5microdataaregooglestructureddatamarkuphelperandschema.org'smarkupvalidator.1) googlestructureddatama rkuphelperisuser-mesra, guidinguserStoaddmicrodatagsforenhancedseo.2) skema.org'smarkupvalidatorchecksmicrodataimplemen

Microdata di html5: kunci untuk ranking enjin carian yang lebih baik Microdata di html5: kunci untuk ranking enjin carian yang lebih baik Jun 12, 2025 am 10:22 AM

MicrodataasifificelymprovesseobyenhancingsearchengineuNdersterstandingandrankingofwebpages.1) itaddssemanticmeaningtoHtml, aiderbetterindexing.2) itenablesrichsnippets, meningkatnya

Matlamat HTML5: Panduan Permulaan Cepat Matlamat HTML5: Panduan Permulaan Cepat May 18, 2025 am 12:18 AM

Html5aimstoimproveWebaccessibility, kecekapan, dan interactivityforbothusersanddevelopers.1) itreducestheneedforexternalpluginsbysupportingnativemultimeDia.2) itenhancessemanticstructureWithnewelements.3

Spesifikasi HTML5: Meneroka matlamat dan motivasi utama Spesifikasi HTML5: Meneroka matlamat dan motivasi utama May 16, 2025 am 12:19 AM

TheKeygoalsandmotivationsbehindhtml5weretoenhancesemanticstructure, improvemeMultimeDiasupport, andensureBetterperpormanceAndceandcompatibilityAcbossDevices, drivybytheneedtoaddresshtml4'SlimitationsandMeetMandmandmands.1)

Apakah ciri -ciri utama yang diperkenalkan dalam HTML5? Apakah ciri -ciri utama yang diperkenalkan dalam HTML5? Jun 19, 2025 pm 11:57 PM

Html5introducedkeyfeaturesthattransformedwebdevelopment.1.semanticeLements ,, andimprovedstructure, kebolehbacaan, dan aksesibiliti.2.nativemultimediasupportviaandtagseliminatedrelianceonplugins

Mengendalikan penyambungan semula dan kesilapan dengan acara html5 pelayan-sent. Mengendalikan penyambungan semula dan kesilapan dengan acara html5 pelayan-sent. Jul 03, 2025 am 02:28 AM

Apabila menggunakan HTML5SSE, kaedah untuk menangani penyambungan semula dan kesilapan termasuk: 1. Memahami mekanisme penyambungan semula lalai. Eventsource Retrys 3 saat selepas sambungan terganggu secara lalai. Anda boleh menyesuaikan selang melalui medan semula; 2. Dengar peristiwa ralat untuk menangani kegagalan sambungan atau kesilapan parsing, membezakan jenis ralat dan melaksanakan logik yang sepadan, seperti masalah rangkaian yang bergantung pada penyambungan semula automatik, kesilapan pelayan secara manual melambatkan penyambungan semula, dan kegagalan pengesahan menyegarkan token; 3. Secara aktif mengawal logik penyambungan semula, seperti penutupan secara manual dan membina semula sambungan, menetapkan bilangan maksimum masa semula, menggabungkan navigator.online untuk menilai status rangkaian untuk mengoptimumkan strategi semula. Langkah -langkah ini dapat meningkatkan kestabilan aplikasi dan pengalaman pengguna.

Adakah sukar untuk menggunakan HTML5 untuk mencapai matlamatnya? Adakah sukar untuk menggunakan HTML5 untuk mencapai matlamatnya? May 16, 2025 am 12:06 AM

Html5isnotparticularlydifficulttouseButrequiresunderpanderitsfeatures.1) semantikelements ,,, andimprovestructure, kebolehbacaan, seo, danccessibility.2) MultimediasupportviaandelementseNhanceSexpereSheWithoutPlugins.3)

See all articles