Uzantılarda Gerçek Zamanlı Güncellemeler

Gerçek zamanlı güncellemeler, sunucularınızdan doğrudan uzantı kurulumlarınıza anında bir iletişim yolu sağlar. Verileri etkinlikler oldukça gönderebilir ve alabilirsiniz. Anlık mesajlaşma, arka plan görevlerini tetikleme veya cihaz verilerini senkronize etme gibi pek çok modern hizmette kritik bir öneme sahiptir. Chrome uzantılarında gerçek zamanlı iletişim kurmak için birçok seçenek vardır.

  • Web Push veya Push API, herhangi bir Push sağlayıcısından ve hatta kendi web sunucunuzdan Chrome uzantıları üzerinden mesaj göndermenize ve almanıza olanak tanıyan bir web standardıdır.
  • chrome.gcm, Firebase Cloud Messaging'i kullanarak mesaj göndermenize ve almanıza olanak tanıyan eski bir uzantıya özel 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 fazla kullanıcı arasında dosyaları, ayarları veya diğer bilgi parçalarını senkronize ediyorsanız Web Push, uzantının sunucudan güncellenmesini sağlamak için uzantınıza sessiz güncellemeler göndermenin mükemmel bir yoludur.

Kullanıcıların hataları veya sorunları bildirmelerine izin veriyor musunuz? Paylaşmak istediğiniz bir güncelleme olduğunda bunu doğrudan uzantınızda bildirmek üzere bir Push sağlayıcısıyla entegrasyon sağlayabilirsiniz.

Kullanıcılara bildirim gönderin.

Bildirimleri tamamen istemci tarafında gönderebilirsiniz. Ancak kim, ne, nerede ve ne zaman bildirim göndereceğiniz sunucu tarafında bir mantığınız varsa Web Push gelecekte kullanabileceğiniz en iyi 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) özelliğini sunar ancak yalnızca HTTP Cloud Messaging API'sinde kullanılabilir. Bu sürüm, 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ş mesajlar göndermek istiyorsanız chrome.gcm ideal seçenektir. Eski Firebase mesajlaşma API'leri temel alınarak geliştirilen chrome.gcm, Chrome'da on yılı aşkın süredir desteklenmektedir.

Yeni bir ileti gelmesi veya bir dosya paylaşılması gibi hesapları açısından önemli bir şey olduğunda kullanıcılara bildirim göndermek için Web Push veya chrome.gcm uygulamasını kullanabilirsiniz.

Anlık Mesajlaşma

Sık sık iki yönlü iletişim kurmak mı istiyorsunuz? O zaman bir web soketi sizin için en iyi seçenek olabilir. Uzantınız ile sunucunuz arasında (hatta doğrudan diğer kullanıcılarla) çift yönlü bir bağlantı açar. Gerçek zamanlı olarak veri ve mesaj alışverişi yapmanızı sağlar. Bunlar genel olarak web için mükemmel bir seçenek olsa da, uzantılarla ilgili bazı sınırlamaları vardır. Bunları kullanmayı planlıyorsanız aklınızda bulundurmanız gereken bazı sınırlamalar vardır.

Bu kılavuzun geri kalanında, mevcut seçeneklere daha yakından göz atacağız.

Push API'si ile push bildirimleri

Push API'sini kullanarak push bildirimleri ve mesajları göndermek için herhangi bir Push sağlayıcısını kullanabilirsiniz. Push API'sinden yapılan bir push işlemi, alınır alınmaz hizmet çalışanınız tarafından işlenir. Uzantı askıya alınmışsa bir Push uyandırır. Uzantıda 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'si, web uygulamalarına ve mobil uygulamalara gerçek zamanlı güncellemeler gönderen bir hizmet olan Firebase Cloud Messaging (FCM) ile doğrudan bağlantı sağlar. Bu, Push'un tarayıcılarda kullanıma sunulmasından uzun 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 geliştirilmiştir. Bu API'ler başka yerlerde kullanımdan kaldırılmış olsa da uzantılarda kullanımdan kaldırılmaz. Öngörülebilir gelecekte de çalışmaya devam edecekler. Ancak bu eski push arka ucu olduğu için Topics gibi özellikler yoktur.

FCM arka uç hizmeti, bildirimlerin Chrome'da kullanıcılara ulaşması için kesin bir gereklilik olsa da mesaj göndermek için chrome.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 hâlâ tam olarak desteklenen bir Chrome Extension API'si olsa da en iyi uygulama, Push API gibi web standartlarını buna benzer uzantılara özel standartlara tercih etmektir. Kullanım alanınız en iyi şekilde chrome.gcm ile gösteriliyorsa chrome.gcm'yi sıfırdan nasıl kuracağınızla ilgili ayrıntılı bir anlatımdan yararlanabilirsiniz.

WebSockets ile gerçek zamanlı mesajlar

WebSockets on yılı aşkın süredir web'de gerçek zamanlı mesajlaşmanın temel taşı. Web'deki gerçek zamanlı etkinlikler için sürekli ve çift yönlü iletişim sağlayan bu cihazlar, her zaman tercih edilen bir seçenektir. WebSockets içerik komut dosyaları, popup'lar, yan paneller ve arka plan hizmet çalışanları gibi çeşitli uzantı bileşenlerinde çalışır. Bunlar genel anlamda web'de harika bir seçenek olsa da uzantılarla ilgili bazı sınırlamaları vardır ve bunları kullanmayı düşünüyorsanız aklınızda tutmanız gereken bazı sınırlamalar bulunur.

Push bildirimleri için ideal değil

WebSocket'ler, chrome.gcm gibi bir uzantı platformu API'si kullanmak yerine web platformunda çalışır. Chrome, uzantınızın dışında bir Websocket bağlantısı başlatıldığında uzantınızı hiçbir şekilde uyandıramaz.

Yalnızca etkin bağlantılar

Chrome, kullanılmayan uzantıları 30 saniye sonra askıya alır. Chrome'un, uzantının "kullanılıyor" olup olmadığını belirlemek için kullandığı çeşitli buluşsal yöntemler kullanılı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 WebSockets kullanıyorsanız ve bunun erkenden kapatılmadığından emin olmanız gerekiyorsa, bağlantıyı sürdürmek için bir kalp atışı mesajı gönderebilirsiniz. Bu, sunucuya düzenli aralıklarla iletiler göndererek hem o sunucuya hem de Chrome'a hâlâ etkin durumda olduğunuzu bildirmeyi içerir. Bir websocket'ın süresiz olarak nasıl korunacağına ilişkin bir örneği WebSocket belgelerimizde bulabilirsiniz.