Uzantılarda Gerçek Zamanlı Güncellemeler

Gerçek zamanlı güncellemeler, sunucularınızdan doğrudan uzantı yüklemelerinize anında iletişim sağlar. Etkinlikler gerçekleştikçe veri gönderip alabilirsiniz. Anlık mesajlaşma, arka plan görevlerini tetikleme veya cihaz verilerini senkronize etme gibi birçok farklı modern hizmet için kritik öneme sahip bir işlemdir. Chrome uzantılarında gerçek zamanlı iletişim için çeşitli seçenekler vardır.

  • Web Push veya Push API'si, herhangi bir Push sağlayıcısından ve hatta kendi web sunucunuzdan Chrome uzantılarında mesaj gönderip almanıza olanak tanıyan bir web standardıdır.
  • chrome.gcm, Firebase Cloud Messaging'i kullanarak mesaj gönderip almanıza olanak tanıyan eski, uzantıya özel bir API'dir.
  • WebSockets, Chrome uzantınız ve sunucunuz arasında çift yönlü bir bağlantı açmanıza olanak tanıyan alt düzey bir protokoldür.

Sık karşılaşılan senaryolar

Chrome uzantılarında gerçek zamanlı iletişimin kritik öneme sahip olduğu bazı yaygın senaryoları aşağıda bulabilirsiniz:

Kullanıcıları değişikliklerden haberdar edin.

Birden çok kullanıcı arasında dosyaları, ayarları veya başka bilgileri senkronize ediyorsanız Web Push, durumu sunucudan güncellemesini bildirmek için uzantınıza sessiz güncellemeler göndermenin en iyi yoludur.

Kullanıcıların hata veya sorunları bildirmesine izin veriyor musunuz? Paylaşılacak bir güncelleme olduğunda doğrudan uzantınızda haber vermek için bir Push sağlayıcısıyla entegrasyon gerçekleştirebilirsiniz.

Kullanıcılara bildirim gönderin.

Bildirimleri tamamen istemci tarafında gönderebilirsiniz. Ancak kimin, ne, nerede ve ne zaman bildirim gönderileceği konusunda sunucu tarafı mantığınız varsa Web Push, geleceğe yönelik en başarılı seçenektir.

Yalnızca bir kullanıcı alt kümesine mesaj göndermek için Push en iyi seçenektir. Firebase Cloud Messaging, Topics (kanal olarak da bilinir) sunar ancak bu özellik yalnızca HTTP Cloud Messaging API'de kullanılabilir. Bu, chrome.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 geniş mesaj göndermek istiyorsanız en ideal seçenek chrome.gcm şeklindedir. Eski Firebase mesajlaşma API'leri temel alınarak geliştirilen chrome.gcm, Chrome'da on yılı aşkın süredir destekleniyor.

Hesaplarında önemli bir şey gerçekleştiğinde (ör. yeni bir mesaj geldiğinde veya bir dosyanın paylaşıldığında) kullanıcılara bildirim göndermek için Web Push veya chrome.gcm aracını kullanabilirsiniz.

Anlık Mesajlaşma

Sık sık iki yönlü iletişime mi ihtiyacınız var? O zaman bir web soketi sizin için en iyi seçenek olabilir. Uzantınız ile sunucunuz arasında (veya doğrudan diğer kullanıcılara) iki yönlü bir bağlantı açar. Gerçek zamanlı olarak veri ve mesaj göndermenizi sağlar. Genel olarak web'de harika bir seçenek olsalar da uzantılarla ilgili bazı sınırlamaları vardır. Uzantıları kullanmayı planlıyorsanız bu sınırlamaları göz önünde bulundurmanız gerekir.

Bu kılavuzun geri kalanında, kullanabileceğiniz seçeneklere daha yakından bakacağız.

Push API'si 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 aktarma, alındıktan hemen sonra hizmet çalışanınız tarafından işlenir. Uzantı askıya alındıysa "Push"u tekrar uyandırır. Uzantılarda kullanma süreci, açık web'de kullanacağınız süreçle tamamen aynıdır.

chrome.gcm ile push bildirimleri

chrome.gcm API, web uygulamalarına ve mobil uygulamalara gerçek zamanlı güncellemeler gönderen Firebase Cloud Messaging (FCM) hizmetine doğrudan bağlantı sağlar. Bu, Push'un tarayıcılarda kullanıma sunulmasından yıllar önce eklenen Chrome'a özel 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ılsa da uzantılarda desteği sonlandırılmış değildir. Bu proje ekibi yakın gelecekte de çalışmaya devam edecektir. Ancak bu eski aktarım arka ucu olduğundan Topics gibi özelliklerden yoksundur.

Bildirimlerin Chrome'daki kullanıcılara ulaşması için FCM arka uç hizmeti zorunlu bir gereklilik olsa da mesaj göndermek için chrome.gcm kullanmanız gerekmez. Tüm Push sağlayıcıları web Push aracılığıyla bir Firebase hesabına mesaj ve etkinlik gönderip alabilir. Bu hâlâ tam olarak desteklenen bir Chrome Extension API olsa da en iyi uygulama, Push API'si gibi web standartlarını bunun gibi spesifik olanlara genişletmeyi tercih etmektir. Kullanım alanınız chrome.gcm ile en iyi şekilde sunuluyorsa chrome.gcm'yi sıfırdan kurmayla ilgili ayrıntılı bir "nasıl yapılır" kılavuzundan yararlanabilirsiniz.

WebSockets ile gerçek zamanlı mesajlar

WebSockets, on yıldan uzun süredir web'de gerçek zamanlı mesajlaşmanın temel taşıdır. Sürekli ve çift yönlü bir iletişim sağlayan web'deki gerçek zamanlı etkinlikler için en uygun seçenek budur. WebSockets; içerik komut dosyaları, pop-up'lar, yan paneller ve arka plan hizmet çalışanları gibi çeşitli uzantı bileşenlerinde çalışır. Bunlar, genel olarak web'de mükemmel bir seçenek olsa da uzantıları kullanmayı planlıyorsanız aklınızda bulundurmanız gereken bazı sınırlamalar vardır.

Push bildirimleri için ideal değil

WebSocket'ler chrome.gcm gibi bir uzantı platformu API'si kullanmak yerine web platformunda çalıştığından, uzantınız dışında bir Websocket bağlantısı başlatıldığında Chrome'un uzantınızı uyandırmasının yolu yoktur.

Yalnızca etkin bağlantılar

Chrome, kullanılmayan uzantıları 30 saniye sonra askıya alır. Chrome'a, uzantının "kullanılıyor" olup olmadığını belirleyen çeşitli bulgular uygulanır. Bunlardan biri etkin 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 WebSockets kullanıyorsanız ve bunun erken kapatılmadığından emin olmanız gerekiyorsa bağlantıyı sürdürmek için bir nabız mesajı gönderebilirsiniz. Bu, sunucuya düzenli iletiler göndermeyi ve hem sunucuya hem de Chrome'a hâlâ etkin olduğunuzu bildirmeyi içerir. Bir websocket'in süresiz olarak nasıl canlı tutulacağına ilişkin bir örneği WebSocket belgelerimizde bulabilirsiniz.