Memahami Server Sent Events
Bayangkan Anda menggunakan ChatGPT. Anda mengajukan pertanyaan. Alih-alih melihat kata-kata muncul satu per satu, Anda harus menunggu 5 detik agar seluruh jawaban muncul sekaligus.
Penundaan ini terasa lambat. Terasa menjengkelkan.
Untuk mengatasi hal ini, pengembang menggunakan respons streaming. Hal ini membuat pengalaman terasa cepat.
Server Sent Events (SSE) memungkinkan hal ini terjadi.
Apa itu SSE? SSE adalah standar untuk melakukan streaming data dari server ke client melalui HTTP. SSE memungkinkan server untuk mengirimkan pembaruan kepada Anda secara real-time.
Cara kerjanya:
Server mengirimkan blok teks kecil. Blok-blok ini menggunakan field seperti data, event, id, dan retry. Setiap blok dipisahkan oleh baris kosong.
Contoh:
data: {"name": "Portal Gun", "price": 999.99}
Kegunaan umum SSE:
- streaming chat AI
- notifikasi langsung (live notifications)
- log real-time
- observabilitas sistem
Sebelum adanya SSE, pengembang menggunakan dua metode utama untuk mendapatkan pembaruan:
Short polling Client meminta data ke server. Jika data belum siap, server mengirimkan pesan tunggu. Client menunggu dan meminta lagi. Hal ini berulang hingga pekerjaan selesai.
Long polling Client meminta data ke server. Server menahan permintaan tetap terbuka hingga data siap atau terjadi timeout. Client harus memulai ulang permintaan segera setelah menerima respons.
Event stream menangani proses yang berkelanjutan. Proses-proses ini mengikuti urutan tertentu. Ini mencakup tugas sederhana seperti membuat PDF atau tugas kompleks seperti transaksi bank.
Server membuka saluran komunikasi dengan client. Server menjaga saluran ini tetap terbuka hingga proses selesai.
Sumber: https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd