Anlık güncellemeler, sunucularınızdan doğrudan uzantı yüklemelerinize anında iletişim yolu sağlar. Etkinlikler gerçekleşirken veri gönderip alabilirsiniz. Anlık mesajlaşma, arka plan görevlerini tetikleme veya cihaz verilerini senkronize etme gibi işlemler için kullanılsın ya da kullanılmasın, bu işlem birçok modern hizmet için kritik öneme sahiptir. Chrome uzantılarında gerçek zamanlı iletişim kurmak için çeşitli seçenekler vardır.
- Web Push veya Push API, herhangi bir Push sağlayıcıdan ya da kendi web sunucunuzdan Chrome uzantısında mesaj göndermenize ve almanıza olanak tanıyan bir web standardıdır.
- browser.gcm, Firebase Cloud Messaging'i kullanarak mesaj göndermenize ve almanıza olanak tanıyan, tarayıcıya özel eski bir API'dir.
- WebSockets, Chrome uzantınız ile sunucunuz arasında çift yönlü bir bağlantı açmanıza olanak tanıyan düşük seviyeli bir protokoldür.
Sık karşılaşılan senaryolar
Chrome uzantılarında gerçek zamanlı iletişimin kritik olduğu bazı yaygın senaryolar şunlardır:
Kullanıcıları değişiklikler konusunda bilgilendirin.
Dosyaları, ayarları veya diğer bilgileri birden fazla kullanıcı arasında senkronize ediyorsanız Web Push, uzantınıza sunucudaki durumu güncellemesi gerektiğini bildirmek için sessiz güncellemeler göndermenin mükemmel bir yoludur.
Kullanıcıların hataları veya sorunları bildirmesine izin veriyor musunuz? Paylaşılacak bir güncellemeniz olduğunda doğrudan uzantınızdan bildirim sağlayıcıya haber vermek için bu sağlayıcıyla entegrasyon yapabilirsiniz.
Kullanıcılara bildirim gönderme
Bildirimleri tamamen istemci tarafında gönderebilirsiniz. Ancak, bildirimlerin kime, ne zaman, nerede ve ne hakkında gönderileceğine dair sunucu tarafı mantığınız varsa Web Push, geleceğe en uygun seçenektir.
Yalnızca bir kullanıcı alt grubuna mesaj göndermek için Push en iyi seçenektir.
Firebase Cloud Messaging, Konular (kanallar olarak da bilinir) sunsa da bu özellik yalnızca HTTP Cloud Messaging API'sinde kullanılabilir. Bu, browser.gcm tarafından kullanılan eski sürümden farklıdır. Chrome'un eski sürümlerini (Chrome 121 öncesi) kullananlar da dahil olmak üzere tüm kullanıcılara toplu mesaj göndermek istiyorsanız browser.gcm ideal seçenektir. Eski Firebase mesajlaşma API'leri üzerine kurulu olan browser.gcm, Chrome'da on yılı aşkın süredir desteklenmektedir.
Web push veya browser.gcm kullanarak, hesaplarında önemli bir olay gerçekleştiğinde (ör. yeni bir mesaj geldiğinde veya bir dosya paylaşıldığında) kullanıcılara bildirim gönderebilirsiniz.
Anlık Mesajlaşma
Sık sık iki yönlü iletişim kurmanız mı gerekiyor? Bu durumda, sizin için en iyi seçenek web soketi olabilir. Uzantınız ile sunucunuz (hatta doğrudan diğer kullanıcılar) arasında iki yönlü bir bağlantı açar. Gerçek zamanlı olarak veri ve mesaj alışverişi yapmanıza olanak tanır. Genel olarak web'de harika bir seçenek olsalar da bunları kullanmayı planlıyorsanız uzantılarla ilgili bazı sınırlamaları göz önünde bulundurmanız gerekir.
Bu kılavuzun geri kalanında, mevcut seçenekleri daha yakından inceleyeceğiz.
Push API ile push bildirimleri
Push API'yi kullanarak push bildirimleri ve mesajları göndermek için herhangi bir Push sağlayıcısını kullanabilirsiniz. Push API'den gelen bir anında bildirim, alındığı anda hizmet çalışanınız tarafından işlenir. Uzantı askıya alınmışsa Push ile tekrar etkinleştirilir. Uzantılarda kullanma süreci, açık web'de kullanma süreciyle tamamen aynıdır.
browser.gcm ile push bildirimleri
browser.gcm API, Firebase Cloud Messaging'e (FCM) doğrudan bağlantı sağlar. FCM, web uygulamalarına ve mobil uygulamalara anlık güncellemeler göndermek için kullanılan bir hizmettir. Bu, Push tarayıcılarda kullanıma sunulmadan çok yıllar önce eklenen Chrome'a özgü bir uzantı API'sidir. Firebase'in (artık kullanımdan kaldırılan) eski HTTP API'leri kullanılarak oluşturulmuştur. Bu API'ler başka yerlerde kullanımdan kaldırılmış olsa da uzantılarda kullanımdan kaldırılmamıştır. Öngörülebilir gelecekte çalışmaya devam edecekler. Ancak bu, eski push arka ucu olduğundan Konular gibi özellikler eksiktir.
FCM arka uç hizmeti, bildirimlerin Chrome'daki kullanıcılara ulaşması için zorunlu olsa da mesaj göndermek için browser.gcm kullanmanız gerekmez.
Tüm Push sağlayıcılar, web Push'u kullanarak bir Firebase hesabına mesaj ve etkinlik gönderip alabilir. Bu API, Chrome uzantısı API'si olarak tam desteklenmeye devam etse de bu gibi uzantıya özgü API'ler yerine Push API gibi web standartlarını tercih etmek en iyi uygulamadır. Kullanım alanınız için en uygun çözüm browser.gcm ise browser.gcm'yi sıfırdan ayarlama hakkında ayrıntılı bir nasıl yapılır kılavuzu bulunmaktadır.
WebSocket'ler ile anlık mesajlar
WebSockets, on yılı aşkın bir süredir web'de anlık mesajlaşmanın temelini oluşturmaktadır. Web'deki anlık etkinlikler için tercih edilen seçenek olan bu özellik, kesintisiz ve iki yönlü bir görüşme imkanı sunar. WebSocket'ler çeşitli uzantı bileşenlerinde çalışır. Bunlar içerik komut dosyaları, pop-up'lar, yan paneller veya arka plan hizmeti çalışanları olabilir. Genel olarak web'de harika bir seçenek olsalar da uzantılarla ilgili bazı sınırlamaları vardır. Bu sınırlamaları, kullanmayı planlıyorsanız göz önünde bulundurmanız gerekir.
Push bildirimleri için uygun değil
WebSockets, uzantı platformu API'si browser.gcm yerine web platformunda çalıştığından Chrome, uzantınızın dışında bir WebSocket bağlantısı başlatıldığında uzantınızı uyandırmanın bir yolunu sunmaz.
Yalnızca etkin bağlantılar
Chrome, 30 saniye boyunca kullanılmayan uzantıları askıya alır. Chrome, uzantının "kullanılıp kullanılmadığını" belirlemek için bir dizi sezgisel yöntem kullanır. Bunlardan biri etkin bir WebSocket bağlantısıdır. Chrome, son 30 saniye içinde WebSocket mesajı gönderen veya alan uzantıları askıya almaz. Uzantınızda WebSocket kullanıyorsanız ve bağlantının erken kapanmadığından emin olmanız gerekiyorsa bağlantıyı sürdürmek için etkinlik sinyali mesajı gönderebilirsiniz. Bu işlem, sunucuya düzenli olarak mesaj göndermeyi içerir. Böylece hem sunucu hem de Chrome, etkin olduğunuzu bilir. Bir WebSocket'i süresiz olarak etkin tutma örneğini WebSocket belgelerimizde bulabilirsiniz.