Update real-time menyediakan jalur komunikasi instan dari server Anda langsung ke penginstalan ekstensi. Anda dapat mengirim dan menerima data saat peristiwa terjadi. Baik Anda menggunakannya untuk pesan instan, memicu tugas latar belakang, atau menyinkronkan data perangkat, hal ini merupakan operasi penting dengan sejumlah layanan modern. Ada sejumlah opsi untuk melakukan komunikasi real-time di ekstensi Chrome.
- Web Push, atau Push API, adalah standar web yang memungkinkan Anda mengirim dan menerima pesan dalam ekstensi Chrome dari penyedia Push mana pun, atau bahkan dengan server web Anda sendiri.
- chrome.gcm adalah API khusus ekstensi lama yang memungkinkan Anda mengirim dan menerima pesan menggunakan Firebase Cloud Messaging.
- WebSockets adalah protokol tingkat rendah yang memungkinkan Anda membuka koneksi dua arah antara ekstensi Chrome dan server Anda.
Skenario umum
Berikut adalah beberapa skenario umum di ekstensi Chrome yang sangat penting untuk komunikasi real-time:
Pastikan pengguna mengetahui perubahan terbaru.
Jika Anda menyinkronkan file, setelan, atau informasi lain di antara beberapa pengguna, Web Push adalah cara yang tepat untuk mengirim update senyap ke ekstensi Anda agar ekstensi tahu pembaruan status dari server.
Apakah Anda mengizinkan pengguna melaporkan bug atau masalah? Anda dapat mengintegrasikan dengan penyedia Push untuk memberi tahu mereka segera setelah ada info terbaru untuk dibagikan, langsung di ekstensi Anda.
Mengirim notifikasi kepada pengguna.
Meskipun Anda dapat mengirim notifikasi sepenuhnya sisi klien, jika Anda memiliki logika sisi server terkait siapa, apa, di mana, atau kapan harus mengirim notifikasi daripada Web Push adalah opsi bukti yang paling canggih di masa depan.
Untuk mengirim pesan ke sebagian pengguna saja, Push adalah pilihan terbaik.
Meskipun menawarkan Topics (juga dikenal sebagai saluran), Firebase Cloud Messaging hanya tersedia di HTTP Cloud Messaging API. Hal ini
berbeda dengan versi lama yang digunakan chrome.gcm
. Jika Anda ingin mengirim pesan yang luas kepada semua pengguna, termasuk pengguna yang menggunakan Chrome versi lama (sebelum Chrome 121), chrome.gcm
adalah opsi yang ideal. Dibangun di API pesan Firebase Lama, chrome.gcm
telah didukung di Chrome selama lebih dari satu dekade.
Anda dapat menggunakan Web Push atau chrome.gcm
untuk mengirim notifikasi kepada pengguna saat
sesuatu yang penting bagi akun mereka terjadi, seperti saat ada pesan baru
atau saat file dibagikan.
Pesan Instan
Perlu sering berkomunikasi dua arah? Maka soket web mungkin adalah pilihan terbaik untuk Anda. API ini akan membuka koneksi dua arah antara ekstensi dan server Anda (atau bahkan langsung ke pengguna lain). yang memungkinkan Anda bertukar data dan pesan secara {i>real time<i}. Meskipun secara umum merupakan opsi yang bagus di web, ekstensi ini memiliki beberapa batasan terkait ekstensi yang perlu Anda perhatikan jika berencana menggunakannya.
Di bagian selanjutnya dalam panduan ini, kita akan mempelajari lebih lanjut opsi yang tersedia.
Notifikasi push dengan Push API
Dengan Push API, Anda dapat menggunakan penyedia Push apa pun untuk mengirim pesan dan notifikasi push. Push dari Push API akan diproses oleh pekerja layanan segera setelah diterima. Jika ekstensi telah ditangguhkan, Push akan mengaktifkannya kembali. Proses untuk menggunakannya dalam ekstensi sama persis dengan yang Anda gunakan di web terbuka.
Notifikasi push dengan chrome.gcm
API chrome.gcm menyediakan koneksi langsung ke Firebase Cloud Messaging (FCM), sebuah layanan untuk mengirimkan update real-time ke aplikasi web dan aplikasi seluler. Ini adalah API ekstensi khusus Chrome yang ditambahkan bertahun-tahun sebelum Push tersedia di browser. API tersebut dibuat menggunakan HTTP API lama Firebase (yang kini tidak digunakan lagi). Meskipun tidak digunakan lagi di tempat lain, API tersebut tidak digunakan lagi dalam ekstensi. Mereka akan terus bekerja untuk masa depan yang dapat diprediksi. Namun, karena backend ini adalah backend push lama, backend-nya tidak memiliki fitur seperti Topics.
Meskipun layanan backend FCM merupakan persyaratan sulit bagi notifikasi untuk menjangkau pengguna di Chrome, Anda tidak perlu menggunakan chrome.gcm
untuk mengirim pesan.
Semua penyedia Push dapat mengirim dan menerima pesan serta peristiwa ke akun Firebase menggunakan Web Push. Meskipun API ini masih menjadi API Ekstensi Chrome yang didukung sepenuhnya, praktik terbaiknya adalah lebih memilih standar web seperti Push API daripada menambahkan yang khusus seperti ini. Jika kasus penggunaan Anda paling baik ditangani dengan chrome.gcm, ada petunjuk terperinci tentang cara menyiapkan chrome.gcm dari awal.
Pesan real-time dengan WebSockets
WebSockets telah menjadi landasan pengiriman pesan real time di web selama lebih dari satu dekade. Aplikasi ini telah menjadi opsi andalan untuk peristiwa real time di web, yang menyediakan percakapan dua arah yang berkelanjutan. WebSockets berfungsi di berbagai komponen ekstensi, baik itu skrip konten, pop-up, panel samping, dan atau pekerja layanan latar belakang. Meskipun secara umum merupakan opsi yang bagus di web, ekstensi tersebut memiliki beberapa batasan terkait ekstensi yang perlu Anda perhatikan jika Anda berencana menggunakannya.
Tidak cocok untuk notifikasi push
WebSocket berjalan di platform web, bukan menggunakan API platform ekstensi seperti chrome.gcm
, Chrome tidak dapat mengaktifkan ekstensi Anda saat koneksi Websocket dimulai di luar ekstensi Anda.
Hanya koneksi aktif
Chrome menangguhkan ekstensi yang tidak digunakan setelah 30 detik. Sejumlah heuristik dimasukkan ke dalam Chrome yang menentukan apakah ekstensi "sedang digunakan", salah satunya adalah koneksi WebSocket aktif. Chrome tidak akan menangguhkan ekstensi yang telah mengirim atau menerima pesan WebSocket dalam 30 detik terakhir. Jika Anda menggunakan WebSockets dalam ekstensi, dan perlu memastikan bahwa tidak ditutup sebelum waktunya, Anda dapat mengirim pesan heartbeat untuk mempertahankan koneksi. Hal ini melibatkan pengiriman pesan berkala ke server, yang memberi tahu server dan Chrome bahwa Anda masih aktif. Contoh cara menjaga websocket tetap aktif tanpa batas waktu tersedia di dokumentasi WebSocket kami.