API'ye girmeden önce, push'a baştan sona üst düzey bir bakış atalım. Daha sonra her bir konuyu veya API'yi ayrı ayrı ele aldığımızda, bunların nasıl ve neden önemli olduğunu anlayacaksınız.
Push stratejisini uygulamanın üç temel adımı şunlardır:
- Kullanıcıyı push bildirimlerine abone etmek için istemci tarafı mantığını ekleme (ör. web uygulamanızda kullanıcıyı push mesajlarına kaydettiren JavaScript ve kullanıcı arayüzü).
- Arka ucunuzdan/uygulamanızdan gelen ve kullanıcının cihazına push mesajı gönderilmesini tetikleyen API çağrısı.
- Push bildirimi cihaza ulaştığında "push etkinliği" alacak hizmet çalışanı JavaScript dosyası. Bildirim göstermek için bu JavaScript'i kullanabilirsiniz.
Şimdi bu adımların her birinin ne anlama geldiğini biraz daha ayrıntılı olarak inceleyelim.
1. adım: İstemci tarafı
İlk adım, bir kullanıcıyı push mesajlaşmaya "abone yapmak"tır.
Bir kullanıcıyı abone yapmak için iki şey gerekir. İlk olarak, kullanıcıdan push mesajları göndermek için izin almanız gerekir. İkincisi, tarayıcıdan PushSubscription alma.
PushSubscription, ilgili kullanıcıya push mesajı göndermek için gereken tüm bilgileri içerir.
Bunu, kullanıcının cihazının kimliği olarak düşünebilirsiniz.
Tüm bunlar, Push API ile JavaScript'te yapılır.
Bir kullanıcıya abone olmadan önce bir "uygulama sunucusu anahtarları" kümesi oluşturmanız gerekir. Bu konuyu daha sonra ele alacağız.
VAPID anahtarları olarak da bilinen uygulama sunucusu anahtarları, sunucunuza özeldir. Bu anahtarlar, push hizmetinin bir kullanıcıya hangi uygulama sunucusunun abone olduğunu bilmesini ve push mesajlarını o kullanıcıya tetikleyen sunucunun aynı sunucu olmasını sağlar.
Kullanıcıyı abone yaptıktan ve PushSubscription aldıktan sonra PushSubscription ayrıntılarını arka ucunuza/sunucunuza göndermeniz gerekir. Sunucunuzda bu aboneliği bir veritabanına kaydedip kullanıcıya push mesajı göndermek için kullanırsınız.
2. adım: Push mesajı gönderme
Kullanıcılarınıza push mesajı göndermek istediğinizde bir push hizmetine API çağrısı yapmanız gerekir. Bu API çağrısı, gönderilecek verileri, mesajın kime gönderileceğini ve mesajın nasıl gönderileceğiyle ilgili ölçütleri içerir. Normalde bu API çağrısı sunucunuzdan yapılır.
Kendinize sorabileceğiniz bazı sorular:
- Push hizmeti nedir ve kimler tarafından kullanılır?
- API nasıl görünür? JSON mu, XML mi yoksa başka bir şey mi?
- API neler yapabilir?
Push hizmeti nedir ve kimler tarafından kullanılır?
Push hizmeti bir ağ isteği alır, doğrular ve uygun tarayıcıya push mesajı gönderir. Tarayıcı çevrimdışıysa mesaj, tarayıcı çevrimiçi olana kadar sıraya alınır.
Her tarayıcı istediği push hizmetini kullanabilir. Bu, geliştiricilerin kontrolü dışında olan bir durumdur. Her push hizmeti aynı API çağrısını beklediğinden bu durum bir sorun teşkil etmez. Yani push hizmetinin kim olduğu sizi ilgilendirmez. Yalnızca API çağrınızın geçerli olduğundan emin olmanız gerekir.
Push mesajını tetiklemek için uygun URL'yi (yani push hizmetinin URL'sini) almak için PushSubscription içindeki endpoint değerine bakmanız yeterlidir.
PushSubscription'dan alacağınız değerlere ilişkin bir örneği aşağıda bulabilirsiniz:
{
"endpoint": "https://random-push-service.com/some-kind-of-unique-id-1234/v2/",
"keys": {
"p256dh": "BNcRdreALRFXTkOOUHK1EtK2wtaz5Ry4YfYCA_0QTpQtUbVlUls0VJXg7A8u-Ts1XbjhazAkj7I99e8QcYP7DkM=",
"auth": "tBHItJI5svbpez7KI4CCXg=="
}
}
Bu durumda uç nokta https://random-push-service.com/some-kind-of-unique-id-1234/v2/ olur. Push hizmeti "random-push-service.com" olur ve her uç nokta, "some-kind-of-unique-id-1234" ile belirtilen bir kullanıcıya özeldir. Push ile çalışmaya başladığınızda bu kalıbı fark edeceksiniz.
Abonelikteki anahtarlar daha sonra ele alınacaktır.
API nasıl görünür?
Her web push hizmetinin aynı API çağrısını beklediğini belirtmiştim. Bu API, Web Push Protokolü'dür. Bu, push hizmetine nasıl API çağrısı yapacağınızı tanımlayan bir IETF standardıdır.
API çağrısı, belirli başlıkların ayarlanmasını ve verilerin bir bayt akışı olmasını gerektirir. Bu API çağrısını bizim için yapabilecek kitaplıkları ve bunu kendimiz nasıl yapabileceğimizi inceleyeceğiz.
API neler yapabilir?
API, kullanıcıya veri içeren veya içermeyen bir mesaj göndermenin bir yolunu sunar ve mesajın nasıl gönderileceğine dair talimatlar sağlar.
Push mesajıyla gönderdiğiniz veriler şifrelenmelidir. Bunun nedeni, push mesajıyla gönderilen verilerin herhangi bir push hizmeti tarafından görüntülenmesini engellemesidir. Hangi push hizmetinin kullanılacağına tarayıcı karar verdiği için bu önemlidir. Bu durum, tarayıcıların güvenli olmayan bir push hizmeti kullanmasına yol açabilir.
Bir push mesajını tetiklediğinizde push hizmeti API çağrısını alır ve mesajı sıraya koyar. Bu mesaj, kullanıcının cihazı internete bağlanana ve push hizmeti mesajları teslim edene kadar sıraya alınır. Push hizmetine verebileceğiniz talimatlar, push mesajının nasıl sıraya alınacağını tanımlar.
Talimatlar aşağıdaki gibi ayrıntıları içerir:
Push mesajının geçerlilik süresi. Bu, bir iletinin kaldırılmadan ve teslim edilmeden önce ne kadar süre sıraya alınması gerektiğini tanımlar.
Mesajın aciliyetini tanımlayın. Bu, push hizmetinin yalnızca yüksek öncelikli mesajlar göndererek kullanıcının pil ömrünü koruduğu durumlarda kullanışlıdır.
Push mesajına bir "konu" adı verin. Bu ad, bekleyen tüm mesajları bu yeni mesajla değiştirir.
3. adım: Kullanıcının cihazında push etkinliği
Biz push mesajı gönderdikten sonra push hizmeti, aşağıdaki olaylardan biri gerçekleşene kadar mesajınızı sunucusunda tutar:
- Cihaz internete bağlanır ve push hizmeti mesajı iletir.
- Mesajın süresi dolduğunda Bu durumda push hizmeti, mesajı sırasından kaldırır ve mesaj hiçbir zaman teslim edilmez.
Push hizmeti bir mesaj gönderdiğinde tarayıcı mesajı alır, verilerin şifresini çözer ve hizmet çalışanınızda bir push etkinliği gönderir.
Hizmet çalışanı, "özel" bir JavaScript dosyasıdır. Tarayıcı, sayfanız açık olmasa bile bu JavaScript'i yürütebilir. Hatta tarayıcı kapalıyken bile bu JavaScript'i çalıştırabilir. Hizmet çalışanının, web sayfasında bulunmayan push gibi API'leri de vardır (ör. hizmet çalışanı komut dosyasında bulunmayan API'ler).
Arka plan görevlerini hizmet çalışanının "push" etkinliğinde gerçekleştirebilirsiniz. Analiz çağrıları yapabilir, sayfaları çevrimdışı önbelleğe alabilir ve bildirim gösterebilirsiniz.
Push mesajlaşma akışı bu şekildedir.
Sonraki adımlar
- Web Push Bildirimlerine Genel Bakış
- Push'un İşleyiş Şekli
- Kullanıcı abone etme
- İzin kullanıcı deneyimi
- Web Push kitaplıklarıyla mesaj gönderme
- Web Push Protokolü
- Push etkinliklerini işleme
- Bildirim gösterme
- Bildirim Davranışı
- Yaygın Bildirim Kalıpları
- Push bildirimleri ile ilgili SSS
- Sık Karşılaşılan Sorunlar ve Hata Bildirme