cari
Rumahhujung hadapan webTutorial H5Bagaimanakah saya menggunakan API HTML5 Server-Sent Events (SSE) untuk kemas kini masa nyata dari pelayan?

Cara Menggunakan API Peristiwa Server Html5 (SSE) untuk kemas kini masa nyata dari pelayan

API Server-Sent Events (SSE) HTML5 menyediakan cara yang mudah dan cekap untuk pelayan web untuk menolak kemas kini kepada penyemak imbas klien secara real-time. Tidak seperti teknologi seperti WebSockets, SSE adalah Unidirectional - pelayan menghantar data kepada klien, tetapi pelanggan tidak dapat menghantar data kembali ke pelayan melalui sambungan yang sama. Kesederhanaan ini menjadikannya sesuai untuk senario di mana pelayan perlu menolak kemas kini kepada pelanggan, seperti ticker saham, skor langsung, atau aplikasi sembang (di mana pelanggan hanya perlu menerima mesej).

Untuk menggunakan SSE, anda perlu membuat objek EventSource dalam kod JavaScript anda. Objek ini mewujudkan sambungan berterusan ke titik akhir pelayan yang mengalir peristiwa. Inilah contoh asas:

 <code class="javascript">const eventSource = new EventSource('/events'); eventSource.onmessage = function(event) { console.log('Received event:', event.data); // Process the received data here, eg, update the UI }; eventSource.onerror = function(error) { console.error('EventSource failed:', error); };</code>

Kod ini mewujudkan EventSource yang disambungkan ke /events . Pengendali acara onmessage menerima data yang dihantar oleh pelayan, dan pengendali onerror menangkap sebarang kesilapan. Pelayan, di /events , harus dikonfigurasi untuk menghantar data dalam format SSE yang betul (lebih lanjut mengenai ini di bahagian pelayan di bawah). Ingatlah untuk mengendalikan kesilapan yang berpotensi dan melaksanakan logik penyambungan semula (seperti yang terperinci dalam bahagian kemudian). Pelayan akan terus menghantar data ke atas sambungan ini sehingga sambungan ditutup sama ada oleh klien atau pelayan.

Manfaat Menggunakan Acara Server-Sent (SSE) berbanding dengan teknologi komunikasi masa nyata lain seperti WebSockets

SSE menawarkan beberapa kelebihan mengenai teknologi komunikasi masa nyata yang lain seperti WebSockets:

  • Kesederhanaan: SSE jauh lebih mudah untuk dilaksanakan pada kedua -dua sisi klien dan pelayan. API adalah mudah, dan protokol kurang kompleks daripada WebSockets. Ini mengurangkan masa pembangunan dan kerumitan.
  • Kecekapan: SSE lebih cekap untuk komunikasi unidirectional. Kerana ia hanya membolehkan komunikasi pelayan-ke-klien, ia mengelakkan overhead yang berkaitan dengan protokol komunikasi dua arah seperti WebSockets. Ini diterjemahkan kepada penggunaan jalur lebar yang lebih rendah dan mengurangkan beban pelayan, terutamanya apabila berurusan dengan banyak pelanggan.
  • Berasaskan HTTP: SSE memanfaatkan infrastruktur HTTP yang sedia ada, menjadikannya mudah untuk diintegrasikan dengan pelayan web dan infrastruktur yang sedia ada. Ini menghapuskan keperluan untuk persediaan atau protokol khusus.
  • Mekanisme Reg Retry: SSE termasuk mekanisme semula terbina dalam. Jika sambungan hilang, pelanggan secara automatik akan cuba menyambung semula ke pelayan selepas kelewatan yang ditentukan. Ini memudahkan pengendalian ralat dan memastikan keteguhan. (Walaupun anda masih boleh menyesuaikan tingkah laku ini).

Walau bagaimanapun, websocket lebih unggul apabila komunikasi dua arah diperlukan. Sifat unidirectional SSE mengehadkan kebolehgunaannya dalam senario di mana pelanggan perlu menghantar data kembali ke pelayan secara aktif.

Melaksanakan pengendalian ralat dan logik penyambungan semula dalam aplikasi klien SSE saya

Walaupun SSE mempunyai mekanisme semula terbina dalam, aplikasi yang mantap harus melaksanakan pengendalian ralat tersuai dan logik penyambungan semula untuk pengalaman yang lebih terkawal dan responsif. Inilah contoh yang dipertingkatkan:

 <code class="javascript">const eventSource = new EventSource('/events'); let reconnectAttempts = 0; const maxReconnectAttempts = 5; eventSource.onmessage = function(event) { console.log('Received event:', event.data); reconnectAttempts = 0; // Reset on successful message }; eventSource.onerror = function(error) { console.error('EventSource failed:', error); if (reconnectAttempts  { eventSource.close(); eventSource = new EventSource('/events'); // Reconnect reconnectAttempts ; }, retryDelay); } else { console.error('Max reconnect attempts reached. Giving up.'); // Handle the failure appropriately, eg, display an error message to the user } };</code>

Contoh yang lebih baik ini menambah:

  • Sambung semula percubaan: Mengehadkan bilangan percubaan penyambungan semula untuk mencegah gelung tak terhingga.
  • Backoff eksponen: Meningkatkan kelewatan semula dengan eksponen dengan setiap percubaan, mengurangkan beban pelayan semasa isu sambungan.
  • Pengendalian Kegagalan: Menyediakan mekanisme untuk mengendalikan keadaan di mana bilangan maksimum percubaan menyambung semula dicapai.

Menstrukturkan kod pelayan saya untuk menghantar acara dengan berkesan menggunakan API Acara Server (SSE)

Pelaksanaan pelayan SSE bergantung kepada teknologi yang digunakan (misalnya, Node.js, Python, Java). Walau bagaimanapun, prinsip teras tetap sama: pelayan perlu menghantar data dalam format SSE yang betul. Format ini memerlukan header HTTP tertentu ( Content-Type: text/event-stream ) dan data yang diformat dengan pembatas tertentu. Berikut adalah contoh asas menggunakan node.js dengan ekspres:

 <code class="javascript">const express = require('express'); const app = express(); const port = 3000; app.get('/events', (req, res) => { res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive' }); // Simulate sending events every second setInterval(() => { const data = `data: ${new Date().toISOString()}\n\n`; res.write(data); }, 1000); req.on('close', () => { console.log('Client disconnected'); }); }); app.listen(port, () => { console.log(`Server listening on port ${port}`); });</code>

Kod Node.js ini menetapkan titik akhir pada /events . Fungsi res.writeHead menetapkan tajuk HTTP yang diperlukan. Fungsi setInterval mensimulasikan data setiap saat. Secara kritis, setiap mesej data diikuti oleh dua aksara baru ( \n\n ) seperti yang dikehendaki oleh spesifikasi SSE. Pengendali acara req.on('close') adalah penting untuk log pemotongan. Ingatlah untuk menyesuaikan kod ini ke teknologi dan sumber data pelayan yang dipilih. Untuk skala yang cekap, pertimbangkan untuk menggunakan teknologi yang direka untuk mengendalikan banyak sambungan serentak, seperti pengimbang beban dan rangka kerja asynchronous.

Atas ialah kandungan terperinci Bagaimanakah saya menggunakan API HTML5 Server-Sent Events (SSE) untuk kemas kini masa nyata dari pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Contoh Kod H5: Aplikasi Praktikal dan TutorialContoh Kod H5: Aplikasi Praktikal dan TutorialApr 25, 2025 am 12:10 AM

H5 menyediakan pelbagai ciri dan fungsi baru, sangat meningkatkan keupayaan pembangunan front-end. 1. Sokongan Multimedia: Media Media Melalui dan Elemen, Tiada Plug-Ins diperlukan. 2. Kanvas: Gunakan elemen untuk menjadikan grafik dan animasi 2D secara dinamik. 3. Penyimpanan Tempatan: Melaksanakan penyimpanan data berterusan melalui LocalStorage dan sessionStorage untuk meningkatkan pengalaman pengguna.

Sambungan antara H5 dan HTML5: Persamaan dan PerbezaanSambungan antara H5 dan HTML5: Persamaan dan PerbezaanApr 24, 2025 am 12:01 AM

H5 dan HTML5 adalah konsep yang berbeza: HTML5 adalah versi HTML, yang mengandungi unsur -unsur baru dan API; H5 adalah rangka kerja pembangunan aplikasi mudah alih berdasarkan HTML5. HTML5 Parses dan membuat kod melalui pelayar, manakala aplikasi H5 perlu menjalankan bekas dan berinteraksi dengan kod asli melalui JavaScript.

Blok bangunan kod H5: elemen utama dan tujuan merekaBlok bangunan kod H5: elemen utama dan tujuan merekaApr 23, 2025 am 12:09 AM

Unsur -unsur utama HTML5 termasuk ,,,,,, dan lain -lain, yang digunakan untuk membina laman web moden. 1. Tentukan kandungan kepala, 2.

HTML5 dan H5: Memahami Penggunaan BiasaHTML5 dan H5: Memahami Penggunaan BiasaApr 22, 2025 am 12:01 AM

Tidak ada perbezaan antara HTML5 dan H5, iaitu singkatan HTML5. 1.HTML5 adalah versi kelima HTML, yang meningkatkan fungsi multimedia dan interaktif laman web. 2.H5 sering digunakan untuk merujuk kepada laman web atau aplikasi mudah alih berasaskan HTML5, dan sesuai untuk pelbagai peranti mudah alih.

HTML5: Blok Bangunan Web Moden (H5)HTML5: Blok Bangunan Web Moden (H5)Apr 21, 2025 am 12:05 AM

HTML5 adalah versi terkini bahasa markup hiperteks, yang diseragamkan oleh W3C. HTML5 memperkenalkan tag semantik baru, sokongan multimedia dan peningkatan bentuk, meningkatkan struktur web, pengalaman pengguna dan kesan SEO. HTML5 memperkenalkan tag semantik baru, seperti,, dan lain -lain, untuk menjadikan struktur laman web lebih jelas dan kesan SEO lebih baik. HTML5 menyokong elemen multimedia dan tiada pemalam pihak ketiga diperlukan, meningkatkan pengalaman pengguna dan kelajuan memuatkan. HTML5 meningkatkan fungsi bentuk dan memperkenalkan jenis input baru seperti, dan lain -lain, yang meningkatkan pengalaman pengguna dan membentuk kecekapan pengesahan.

Kod H5: Menulis HTML5 Bersih dan CekapKod H5: Menulis HTML5 Bersih dan CekapApr 20, 2025 am 12:06 AM

Bagaimana cara menulis kod HTML5 yang bersih dan cekap? Jawapannya adalah untuk mengelakkan kesilapan biasa dengan tag semantik, kod berstruktur, pengoptimuman prestasi dan mengelakkan kesilapan biasa. 1. Gunakan tag semantik seperti, dan lain -lain untuk meningkatkan kebolehbacaan kod dan kesan SEO. 2. Pastikan kod berstruktur dan boleh dibaca, menggunakan lekukan dan komen yang sesuai. 3. Mengoptimumkan prestasi dengan mengurangkan tag yang tidak perlu, menggunakan CDN dan kod pemampatan. 4. Elakkan kesilapan biasa, seperti tag tidak ditutup, dan pastikan kesahihan kod.

H5: Bagaimana ia meningkatkan pengalaman pengguna di webH5: Bagaimana ia meningkatkan pengalaman pengguna di webApr 19, 2025 am 12:08 AM

H5 meningkatkan pengalaman pengguna web dengan sokongan multimedia, penyimpanan luar talian dan pengoptimuman prestasi. 1) Sokongan multimedia: H5 dan Elemen Memudahkan pembangunan dan meningkatkan pengalaman pengguna. 2) Penyimpanan Luar Talian: WebStorage dan IndexedDB membenarkan penggunaan luar talian untuk meningkatkan pengalaman. 3) Pengoptimuman Prestasi: Pekerja web dan elemen mengoptimumkan prestasi untuk mengurangkan penggunaan jalur lebar.

Dekonstruktur Kod H5: Tag, Elemen, dan AtributDekonstruktur Kod H5: Tag, Elemen, dan AtributApr 18, 2025 am 12:06 AM

Kod HTML5 terdiri daripada tag, elemen dan atribut: 1. Tag mentakrifkan jenis kandungan dan dikelilingi oleh kurungan sudut, seperti. 2. Unsur terdiri daripada tag permulaan, kandungan dan tag akhir, seperti kandungan. 3. Atribut menentukan pasangan nilai utama dalam tag permulaan, meningkatkan fungsi, seperti. Ini adalah unit asas untuk membina struktur web.

See all articles

Alat AI Hot

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod