Update Real-time di Ekstensi

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, ini adalah 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 di 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 beberapa skenario umum di ekstensi Chrome yang sangat memerlukan komunikasi real-time:

Pastikan pengguna terus mengetahui perubahan yang terjadi.

Jika Anda menyinkronkan file, setelan, atau informasi lainnya di antara beberapa pengguna, Web Push adalah cara terbaik untuk mengirim update senyap ke ekstensi Anda untuk memberi tahu ekstensi tersebut untuk memperbarui status dari server.

Apakah Anda mengizinkan pengguna melaporkan bug atau masalah? Anda dapat berintegrasi dengan penyedia Push untuk langsung memberi tahu mereka setelah Anda memiliki update untuk dibagikan, langsung di ekstensi.

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 notifikasi akan dikirim, maka Web Push adalah opsi yang paling siap menghadapi masa depan.

Untuk mengirim pesan ke sebagian pengguna saja, Push adalah pilihan terbaik. Meskipun Firebase Cloud Messaging menawarkan Topics (juga dikenal sebagai saluran), fitur ini hanya tersedia di HTTP Cloud Messaging API. Versi ini berbeda dengan versi lama yang digunakan chrome.gcm. Jika Anda ingin mengirim pesan luas ke semua pengguna, termasuk pengguna Chrome versi lama (sebelum Chrome 121), chrome.gcm adalah opsi ideal. Dibuat berdasarkan 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 untuk akun mereka terjadi, seperti saat pesan baru masuk atau saat file dibagikan.

Fitur Pesan Instan

Perlu komunikasi dua arah yang sering? Maka soket web mungkin pilihan terbaik untuk Anda. Tindakan ini akan membuka koneksi dua arah antara ekstensi dan server Anda (atau bahkan langsung ke pengguna lain). Dengan layanan ini, Anda dapat bertukar data dan pesan secara real time. Meskipun merupakan opsi yang bagus di web secara umum, keduanya memiliki beberapa batasan terkait ekstensi yang perlu Anda perhatikan jika berencana menggunakannya.

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 notifikasi dan pesan push. Push dari Push API akan diproses oleh pekerja layanan segera setelah diterima. Jika ekstensi telah ditangguhkan, Push akan mengaktifkannya kembali. Proses untuk menggunakannya di ekstensi persis sama dengan yang akan Anda gunakan di web terbuka.

Notifikasi push dengan chrome.gtag

chrome.gcm API menyediakan koneksi langsung ke Firebase Cloud Messaging (FCM), sebuah layanan untuk mengirim pembaruan real-time ke aplikasi web dan aplikasi seluler. Ini adalah API ekstensi khusus Chrome yang ditambahkan bertahun-tahun sebelum Push tersedia di browser. Layanan ini dibuat menggunakan API HTTP lama Firebase (kini tidak digunakan lagi). Meskipun tidak digunakan lagi di tempat lain, API tersebut tidak digunakan lagi dalam ekstensi. Mereka akan terus bekerja untuk masa mendatang. Namun, karena ini adalah backend push lama, fitur ini tidak memiliki fitur seperti Topics.

Meskipun layanan backend FCM adalah persyaratan wajib bagi notifikasi untuk menjangkau pengguna di Chrome, Anda tidak perlu menggunakan chrome.gcm untuk mengirim pesan. Semua penyedia Push dapat mengirim serta menerima pesan dan peristiwa ke akun Firebase menggunakan Push web. Meskipun API ini masih merupakan Chrome Extension API yang didukung sepenuhnya, praktik terbaiknya adalah memilih standar web seperti Push API daripada standar web khusus seperti ini. Jika kasus penggunaan Anda paling baik dilayani dengan chrome.cm, terdapat petunjuk terperinci tentang cara menyiapkan chrome.menyulih dari awal.

Pesan real time dengan WebSockets

WebSockets telah menjadi landasan pengiriman pesan real time di web selama lebih dari satu dekade. Game ini telah menjadi opsi andalan untuk peristiwa real time di web, yang menyediakan percakapan berkelanjutan dan dua arah. WebSockets berfungsi di berbagai komponen ekstensi, baik itu skrip konten, popup, sidepanel, dan atau pekerja layanan latar belakang. Meskipun merupakan opsi yang bagus di web secara umum, ekstensi ini memiliki beberapa batasan dengan ekstensi yang perlu Anda perhatikan jika berencana menggunakannya.

Tidak cocok untuk notifikasi push

Karena WebSockets berjalan di platform web, bukan menggunakan API platform ekstensi seperti chrome.gcm, Chrome tidak memiliki cara untuk mengaktifkan ekstensi Anda saat koneksi Websocket dimulai di luar ekstensi Anda.

Hanya koneksi aktif

Chrome akan menangguhkan ekstensi yang tidak digunakan setelah 30 detik. Sejumlah heuristik dimasukkan ke dalam Chrome untuk menentukan apakah ekstensi sedang "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 WebSocket tidak ditutup terlalu dini, 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 agar websocket tetap aktif tanpa batas waktu tersedia dalam dokumentasi WebSocket kami.