Push nasıl çalışır?

Matt Gaunt

API'ye giriş yapmadan önce yüksek düzeyden push bildirimlerine, baştan sona kadar ele alalım. Daha sonra daha sonra ayrı ayrı konulara veya API'lere geçerseniz, bunların nasıl ve neden önemlidir.

Pushlamanın uygulanmasındaki üç temel adım şunlardır:

  1. Bir kullanıcının push işlemi için abone olması amacıyla istemci tarafı mantığını (ör. .
  2. Arka uçtan / uygulamanızdan gelen ve kullanıcının cihazına push mesajını tetikleyen API çağrısı.
  3. "Push etkinliği" alacak hizmet çalışanı JavaScript dosyası teslimat başladığında için geçerlidir. Bu JavaScript'in içinde bildirim gösterebilirsiniz.

Bu adımların her birinin neleri kapsadığını biraz daha ayrıntılı bir şekilde inceleyelim.

1. Adım: İstemci Tarafı

İlk adım "abone olmak"tır. en iyi uygulamaları izleyeceksiniz.

Bir kullanıcıya abone olmak için iki şey gerekir. Birincisi, verileri göndermek için kullanıcıdan izin almak tercih edebilirsiniz. İkincisi, tarayıcıdan PushSubscription alın.

PushSubscription, bu kullanıcıya push mesajı göndermek için ihtiyaç duyduğumuz tüm bilgileri içerir. "Her tür" bunu, söz konusu kullanıcının cihazının bir kimliği olarak düşünebilirsiniz.

Bu işlem Push API'si kullanılarak JavaScript'te yapılır.

Tarayıcı Desteği

  • Chrome: 42..
  • Kenar: 17..
  • Firefox: 44..
  • Safari: 16..

Kaynak

Bir kullanıcıyı abone etmeden önce, "uygulama sunucusu anahtarları" olarak tanımlanmıştır.

VAPID anahtarları olarak da bilinen uygulama sunucusu anahtarları, sunucunuza özeldir. Bunlar, push hizmetini kullanarak hangi uygulama sunucusunun bir kullanıcıya abone olduğunu öğrenin ve aynı olduğundan emin olun kullanıcıya push mesajlarını tetikleyen bir sunucu bulunur.

Kullanıcıyı abone olduktan ve bir PushSubscription sahibi olduktan sonra şunu göndermeniz gerekir: Arka ucunuza / sunucunuza PushSubscription ayrıntıları ekleyin. Sunucunuza, bu bir push mesajı göndermek için kullanabilirsiniz.

PushAboneliği'ni arka ucunuza gönderdiğinizden emin olun.

2. adım: Push mesajı gönderin

Kullanıcılarınıza push mesajı göndermek istediğinizde push çağrısı için API çağrısı yapmanız gerekir. geliştirmenizi sağlar. Bu API çağrısında hangi verilerin gönderileceği, mesajın kime gönderileceği ve mesajlarla ilgili kriterler belirlenir. Normalde bu API çağrısı sunucunuzdan yapılır.

Kendinize sormuş olabileceğiniz bazı sorular:

  • Push hizmeti kim ve nedir?
  • API nasıl görünür? JSON mu, XML mi, yoksa başka bir şey mi?
  • API neler yapabilir?

Push hizmeti kim ve nedir?

Push hizmeti bir ağ isteği alır, isteği doğrular ve uygun tarayıcıya bir push mesajı iletir. Tarayıcı çevrimdışıysa ileti, tarayıcı çevrimiçi olana kadar sıraya alınır.

Her tarayıcı istediği push hizmetini kullanabilir. Bu, geliştiricilerin üzerinde kontrol sahibi olmadığı bir şeydir bitti. Her push hizmeti aynı API çağrısını beklediğinden bu bir sorun değildir. Anlamı yani push hizmetinin kime ait olduğunu umursamanız gerekmez. Yalnızca, API çağrınızın geçerlidir.

Bir 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.

Aşağıda, PushSubscription'dan elde edeceğiniz değerlere ilişkin bir örnek verilmiştir:

{
  "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/]. Push hizmeti, "random-push-service.com" ve her uç nokta kullanıcıya özeldir. 'some-kind-of-unique-id-1234'. Push özelliğiyle ç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ü. Bir push hizmetine nasıl API çağrısı yapabileceğinizi tanımlayan bir IETF standardıdır.

API çağrısı için belirli başlıkların ayarlanması ve verilerin bayt akışı olması gerekir. Saat bizim için bu API çağrısını gerçekleştirebilen kitaplıklara ve bunu kendimiz nasıl yapabileceğimize bakalım.

API neler yapabilir?

API, kullanıcılara veri kullanarak veya veri olmadan mesaj göndermenin yanı sıra Mesajın nasıl gönderileceğine ilişkin talimatları içerir.

Push iletisiyle gönderdiğiniz veriler şifrelenmiş olmalıdır. Bunun nedeni, push hizmetlerinin (herhangi bir kişi de olabilir) push mesajı Bu, hangi push hizmetinin gönderileceğine tarayıcı karar verdiği için önemlidir , bu güvenli olmayan bir push hizmetini kullanarak tarayıcılara kapı açabiliyor.

Bir push mesajı tetiklediğinizde push hizmeti API çağrısını alır ve mesajını alırsınız. Kullanıcının cihazı internete bağlanana ve push mesajı gönderilene kadar bu mesaj sırada kalır nasıl teslim edebildiğine bakın. Push hizmetine verebileceğiniz talimatlar, push mesajı sıraya alınır.

Talimatlar aşağıdaki gibi ayrıntıları içerir:

  • Push mesajı için geçerlilik süresi. Bu, bir iletinin gönderilmeden önce ne kadar süre kaldırılır ve teslim edilmez.

  • Mesajın aciliyetini tanımlayın. Bu, push hizmetinin kullanıcıların pil ömrünü uzatır.

  • Push mesajına "konu" ekleme adı bu yeni mesajla değiştirilecek.

Sunucunuz bir push mesajı göndermek istediğinde, push hizmetine web push protokolü isteği gönderir.

3. adım: Kullanıcının cihazında aktarma etkinliği

Push mesajı gönderildikten sonra push hizmeti, mesajınızı gelene kadar aşağıdaki etkinliklerden biri gerçekleşir:

  1. Cihaz internete bağlanır ve push hizmeti mesajı iletir.
  2. İletinin süresi dolar. Bu durumda push hizmeti iletiyi sırasından kaldırır ve asla teslim edilmez.

Push hizmeti bir ileti teslim ettiğinde tarayıcı iletiyi alır ve tüm iletilerin verilerini içeren bir push etkinliği gönderir.

Service Worker, "özel" JavaScript dosyası. Tarayıcı, bu JavaScript'i, sayfanız oluşturulmadan çalıştırabilir açın. Tarayıcı kapalıyken bile bu JavaScript'i çalıştırabilir. Service Worker'lar ayrıca Web sayfasında kullanılamayan API'ler (push gibi, kullanılamayan API'ler) hizmet çalışanı komut dosyası olabilir.

Service Worker'ın "push" içinde arka plan görevlerini gerçekleştirebileceğiniz etkinliktir. Siz Analytics çağrıları yapabilir, sayfaları çevrimdışı olarak önbelleğe alabilir ve bildirimler gösterebilir.

Push hizmetinden bir kullanıcının cihazına push mesajı gönderildiğinde hizmet çalışanınız bir push etkinliği alır

Push mesajı akışı bu şekildedir.

Yakında gidilecek yerler

Kod laboratuvarları