Push bildirimlerinin ne olduğu, neden kullanılabileceği ve nasıl çalıştığı hakkında genel bilgiler.
Push bildirimleri nedir?
Push mesajları, kullanıcılarınız web sitenizi kullanmıyor olsa bile bilgileri dikkatlerine sunmanızı sağlar. Kullanıcılarınız etkin olmasalar bile onlara bilgi "itme" olanağı sağladığı için bu mesajlara push mesajları denir. Bu kavramı daha iyi anlamak için Push teknolojisi ile Pull teknolojisini karşılaştırın.
Bildirimler, kullanıcılara küçük bilgi parçaları sunar. Web siteleri, kullanıcılara önemli ve zamana duyarlı etkinlikler veya kullanıcıların yapması gereken işlemler hakkında bilgi vermek için bildirimleri kullanabilir. Bildirimlerin görünümü ve tarzı platformlar arasında farklılık gösterir:
Push mesajları ve bildirimler, birbirinden ayrı ancak birbirini tamamlayıcı iki teknolojidir. Push, kullanıcılar web sitenizi aktif olarak kullanmadığında bile sunucunuzdan kullanıcılara mesaj göndermek için kullanılan teknolojidir. Bildirimler, gönderilen bilgilerin kullanıcının cihazında gösterilmesini sağlayan teknolojidir. Push mesajlaşma olmadan bildirimleri kullanabilirsiniz. Bir gün kullanıcıya yönelik bildirimler olmadan push mesajları (sessiz push) kullanmak da mümkün olabilir ancak tarayıcılar şu anda buna izin vermemektedir. Uygulamada genellikle birlikte kullanılırlar. Teknik bilgisi olmayan bir kullanıcı, push mesajları ile bildirimler arasındaki farkı muhtemelen anlamayacaktır. Bu koleksiyonda push bildirimleri ifadesiyle, mesaj gönderme ve ardından bunu bildirim olarak gösterme kombinasyonunu kastediyoruz. Push mesajları dediğimizde, push teknolojisinin kendisinden bahsediyoruz. Bildirimler derken bildirim teknolojisini kastediyoruz.
Neden push bildirimlerini kullanmalısınız?
- Push bildirimleri, kullanıcıların zamanında, alakalı ve doğru bilgiler almasını sağlar.
- Web sitesi sahibi olarak sizin için push bildirimleri, kullanıcı etkileşimini artırmanın bir yoludur.
Push bildirimleri nasıl çalışır?
Push bildirimlerini uygulamak için temel adımlar şunlardır:
- Kullanıcıdan push bildirimi gönderme izni isteyen istemci mantığı ekleme ve ardından istemci tanımlayıcı bilgilerini veritabanında depolanmak üzere sunucunuza gönderme.
- İletileri istemci cihazlara göndermek için sunucu mantığı ekleme.
- Cihaza gönderilen iletileri almak ve bunları bildirim olarak göstermek için istemci mantığı ekleme.
Bu sayfanın geri kalanında bu adımlar daha ayrıntılı olarak açıklanmaktadır.
Push bildirimi gönderme izni alma
Öncelikle web sitenizin, kullanıcının push bildirimi gönderme iznini alması gerekir.
Bu, kullanıcının Do you want to receive push notifications? isteminin yanındaki Evet düğmesini tıklaması gibi bir kullanıcı hareketiyle tetiklenmelidir. Bu onaydan sonra Notification.requestPermission() numaralı telefonu arayın. Kullanıcının cihazındaki işletim sistemi veya tarayıcı, kullanıcının anlık bildirimleri etkinleştirmek istediğini resmi olarak onaylaması için muhtemelen bir kullanıcı arayüzü gösterir. Bu kullanıcı arayüzü platformlar arasında farklılık gösterir.
İstemciyi push bildirimlerine abone etme
İzin aldıktan sonra web sitenizin, kullanıcıyı push bildirimlerine abone etme sürecini başlatması gerekir. Bu işlem, Push API kullanılarak JavaScript aracılığıyla yapılır. Abonelik sürecinde herkese açık bir kimlik doğrulama anahtarı sağlamanız gerekir. Bu konuyla ilgili daha fazla bilgiyi ilerleyen bölümlerde edineceksiniz. Abonelik sürecini başlattıktan sonra tarayıcı, push hizmeti olarak bilinen bir web hizmetine ağ isteği gönderir. Bu hizmet hakkında daha fazla bilgiyi ilerleyen bölümlerde edinebilirsiniz.
Abonelik başarılı olduysa tarayıcı bir PushSubscription nesnesi döndürür. Bu verileri uzun süre saklamanız gerekir.
Bu işlem genellikle bilgileri kontrol ettiğiniz bir sunucuya gönderip sunucunun bilgileri bir veritabanında depolamasıyla yapılır.
Push mesajı gönderme
Sunucunuz, push mesajını doğrudan bir istemciye göndermiyor. Anlık bildirim hizmeti bu işi yapar. Push hizmeti, kullanıcınızın tarayıcı satıcısı tarafından kontrol edilen bir web hizmetidir. Bir istemciye anlık bildirim göndermek istediğinizde anlık bildirim hizmetine web hizmeti isteği göndermeniz gerekir. Push hizmetine gönderdiğiniz web hizmeti isteğine web push protokolü isteği adı verilir. Web push protokolü isteği şunları içermelidir:
- Mesaja hangi verilerin dahil edileceği
- Mesajın gönderileceği istemci.
- Push hizmetinin iletiyi nasıl teslim etmesi gerektiğiyle ilgili talimatlar. Örneğin, push hizmetinin 10 dakika sonra mesaj göndermeyi denemeyi bırakmasını belirtebilirsiniz.
Normalde web push protokolü isteğini kontrol ettiğiniz bir sunucu üzerinden yaparsınız. Elbette sunucunuzun ham web hizmeti isteğini kendisinin oluşturması gerekmez. Bu işlemi sizin için yapabilecek kitaplıklar vardır. Örneğin, web-push-libs. Ancak temel mekanizma, HTTP üzerinden bir web hizmeti isteğidir.
Push hizmeti, isteğinizi alır, kimliğini doğrular ve push mesajını uygun istemciye yönlendirir. İstemcinin tarayıcısı çevrimdışıysa push hizmeti, tarayıcı çevrimiçi olana kadar push mesajını sıraya alır.
Her tarayıcı, istediği push hizmetini kullanır. Web sitesi geliştiricisi olarak bu konuda herhangi bir kontrolünüz yoktur. Web push protokolü isteği standartlaştırıldığından bu bir sorun değildir. Başka bir deyişle, tarayıcı satıcısının hangi anlık bildirim hizmetini kullandığını önemsemenize gerek yoktur. Web push protokolü isteğinizin spesifikasyona uygun olduğundan emin olmanız yeterlidir. Spesifikasyonda, isteğin belirli başlıkları içermesi ve verilerin bir bayt akışı olarak gönderilmesi gerektiği belirtilir.
Ancak web push protokolü isteğini doğru push hizmetine gönderdiğinizden emin olmanız gerekir. Bu bilgiler, abonelik işlemi sırasında tarayıcının size döndürdüğü PushSubscription verileriyle sağlanır. PushSubscription nesnesi şu şekilde görünür:
{
"endpoint": "https://fcm.googleapis.com/fcm/send/c1KrmpTuRm…",
"expirationTime": null,
"keys": {
"p256dh": "BGyyVt9FFV…",
"auth": "R9sidzkcdf…"
}
}
endpoint alan adı, temelde push hizmetidir. endpoint yolu, push hizmetinin mesajı tam olarak hangi istemciye göndereceğini belirlemesine yardımcı olan istemci tanımlayıcı bilgilerdir.
keys, şifreleme için kullanılır. Bu konu bir sonraki bölümde açıklanmaktadır.
Push mesajını şifreleme
Anlık bildirim hizmetine gönderdiğiniz veriler şifrelenmelidir. Bu sayede, push hizmeti istemciye gönderdiğiniz verileri görüntüleyemez.
Tarayıcı satıcısının hangi push hizmetinin kullanılacağına karar verdiğini ve bu push hizmetinin teorik olarak güvenli olmayabileceğini unutmayın. Sunucunuz, web push protokolü isteklerini şifrelemek için PushSubscription içinde sağlanan keys kullanmalıdır.
Web push protokolü isteklerinizi imzalama
Push hizmeti, başka kullanıcıların kullanıcılarınıza mesaj göndermesini engellemenin bir yolunu sunar. Teknik olarak bunu yapmanız gerekmez ancak Chrome'da en kolay uygulama için bu gereklidir. Firefox'ta isteğe bağlıdır. Diğer tarayıcılarda gelecekte bu işlem gerekebilir.
Bu iş akışında, uygulamanıza özel bir özel anahtar ve ortak anahtar kullanılır. Kimlik doğrulama süreci kabaca şu şekilde işler:
- Özel ve ortak anahtarı tek seferlik bir görev olarak oluşturursunuz. Özel ve ortak anahtarın kombinasyonu uygulama sunucusu anahtarları olarak bilinir. Bu anahtarlar VAPID anahtarları olarak da adlandırılabilir. VAPID, bu kimlik doğrulama sürecini tanımlayan spesifikasyondur.
- Bir istemciyi JavaScript kodunuzdan push bildirimlerine abone ettiğinizde ortak anahtarınızı sağlarsınız. Push hizmeti, cihaz için
endpointoluşturduğunda sağlanan ortak anahtarıendpointile ilişkilendirir. - Web push protokolü isteği gönderdiğinizde, bazı JSON bilgilerini özel anahtarınızla imzalarsınız.
- Push hizmeti, web push protokolü isteğinizi aldığında imzalı bilgilerin kimliğini doğrulamak için depolanan ortak anahtarı kullanır. İmza geçerliyse push hizmeti, isteğin eşleşen özel anahtara sahip bir sunucudan geldiğini anlar.
Push mesajının yayınlanmasını özelleştirme
Web push protokolü istek spesifikasyonu, push hizmetinin push mesajını istemciye göndermeye çalışırken nasıl özelleştirileceğini belirlemenize olanak tanıyan parametreleri de tanımlar. Örneğin, şunları özelleştirebilirsiniz:
- Bir iletinin geçerlilik süresi (TTL), push hizmetinin bir iletiyi ne kadar süreyle teslim etmeye çalışacağını tanımlar.
- Push hizmetinin yalnızca yüksek öncelikli iletileri ileterek istemcinin pil ömrünü koruduğu durumlarda kullanışlı olan iletinin aciliyeti.
- Aynı konudaki bekleyen iletileri en son iletiyle değiştiren ileti konusu.
Gönderilen mesajları bildirim olarak alma ve görüntüleme
Web push protokolü isteğini push hizmetine gönderdikten sonra, aşağıdaki etkinliklerden biri gerçekleşene kadar push hizmeti isteğinizi sıraya alır:
- İstemci internete bağlandığında push hizmeti, push mesajını iletir.
- Mesajın süresi dolar.
Bir istemci tarayıcısı, gönderilen mesajı aldığında push mesajı verilerinin şifresini çözer ve service worker'ınıza bir push etkinliği gönderir. Hizmet çalışanı, web siteniz açık olmasa veya tarayıcı kapalı olsa bile arka planda çalışabilen JavaScript kodudur. Bilgileri bildirim olarak göstermek için hizmet çalışanı push etkinlik işleyicinizde ServiceWorkerRegistration.showNotification() işlevini çağırırsınız.
Sonraki adımlar
- Web Push Bildirimlerine Genel Bakış
- Push'un İşleyiş Şekli
- Kullanıcıyı abone yapma
- İzin kullanıcı deneyimi
- Web Push Kitaplıklarıyla Mesaj Gönderme
- Web Push Protocol (Web Push Protokolü)
- Mesajları kullanma
- Bildirim Gösterme
- Bildirim Davranışı
- Sık Karşılaşılan Bildirim Kalıpları
- Push Bildirimleri ile İlgili SSS
- Sık Karşılaşılan Sorunlar ve Hata Bildirme