Untuk menggunakan acara Server-SENT (SSE) untuk kemas kini masa nyata di HTML5, anda perlu menyediakan kedua-dua komponen sisi pelanggan dan pelayan. Inilah panduan langkah demi langkah:
Persediaan Side Pelanggan:
Membuat Eventsource:
Dalam fail HTML anda, anda membuat objek EventSource
yang menghubungkan ke URL pada pelayan anda. URL ini harus menjadi titik akhir yang akan menghantar acara.
<code class="html"><script> var source = new EventSource('/events'); </script></code>
Mendengarkan acara:
Anda boleh mendengar pelbagai jenis peristiwa seperti message
, open
, dan error
. Sebagai contoh, untuk mengendalikan mesej masuk:
<code class="html"><script> source.onmessage = function(event) { console.log('New message:', event.data); // Handle the event data }; </script></code>
Acara tersuai:
Jika pelayan anda menghantar acara tersuai, anda boleh mendengarnya menggunakan addEventListener
:
<code class="html"><script> source.addEventListener('customEvent', function(event) { console.log('Custom event:', event.data); }, false); </script></code>
Persediaan sisi pelayan:
Menyediakan pelayan:
Pelayan anda perlu bertindak balas dengan tajuk yang sesuai dan memformat data dengan betul. Sebagai contoh, dalam node.js menggunakan Express:
<code class="javascript">app.get('/events', function(req, res) { res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive' }); setInterval(function() { res.write('data: ' new Date().toLocaleTimeString() '\n\n'); }, 1000); });</code>
data:
, diikuti dengan data, dan berakhir dengan dua aksara baru ( \n\n
).Dengan menggunakan langkah-langkah ini, anda boleh melaksanakan SSE dalam aplikasi web anda untuk menolak kemas kini masa nyata kepada pelanggan.
SSE menawarkan beberapa kelebihan ke atas teknologi masa nyata lain seperti WebSockets, termasuk:
Walau bagaimanapun, SSE mungkin tidak sesuai untuk aplikasi yang memerlukan komunikasi dua arah, yang merupakan kelebihan utama WebSockets.
Kesilapan mengendalikan dan pemotongan dalam SSE adalah penting untuk mengekalkan aplikasi web yang mantap. Berikut adalah beberapa strategi:
Mendengarkan peristiwa ralat:
Anda boleh mengendalikan kesilapan dengan mendengar peristiwa error
:
<code class="html"><script> source.onerror = function() { console.log('An error occurred while attempting to connect to the server.'); // Handle error, perhaps by attempting to reconnect }; </script></code>
Logik penyambungan semula:
Objek EventSource
secara automatik akan cuba menyambung semula jika sambungan hilang, tetapi anda mungkin mahu menambah logik tersuai:
<code class="html"><script> var attempt = 0; source.onerror = function() { if (attempt < 3) { setTimeout(function() { source = new EventSource('/events'); attempt ; }, 1000); } else { console.log('Failed to reconnect after several attempts.'); } }; </script></code>
Melaksanakan strategi ini akan membantu anda mengendalikan kesilapan dan pemotongan lebih anggun dalam aplikasi berasaskan SSE anda.
Memastikan keserasian pelayar semasa melaksanakan SSE melibatkan beberapa langkah:
EventSource polyfill
boleh membantu memperluaskan fungsi SSE kepada penyemak imbas yang tidak menyokong.Dengan mengikuti langkah -langkah ini, anda boleh memaksimumkan keserasian pelaksanaan SSE anda di pelbagai pelayar dan persekitaran pengguna.
Atas ialah kandungan terperinci Bagaimana Saya Menggunakan Peristiwa Server-Sent (SSE) untuk kemas kini masa nyata di HTML5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!