Push bildirimlerine genel bakış

Push bildirimlerinin ne olduğuna, neden kullanılabileceğine ve nasıl çalıştığına dair genel bakış.

Push bildirimi nedir?

Push mesajları, içerik üreticilerinizin dikkatine bilgi sunmanıza bile ziyaret edebilirsiniz. Bunlara push adı verilir. çünkü "gönderebileceğiniz" pek çok bilgi edindiklerinde bile etkin değil. Push'u Karşılaştır teknoloji ile Çekme teknolojinin yardımıyla bir sonraki adımdır.

Bildirimler kullanıcıya küçük bilgiler sunar. Web siteleri, kullanıcılara önemli, zamana duyarlı etkinlik veya işlemler hakkında bilgi veren bildirimler gerekiyor. Bildirimlerin görünümü ve tarzı platformlar arasında farklılık gösterir:

macOS ve Android'deki bildirim örnekleri.
macOS ve Android'deki bildirim örnekleri.

Push mesajları ve bildirimler birbirinden ayrı ancak birbirini tamamlayan iki teknolojidir. Push, ne zaman bile olsa sunucunuzdan kullanıcılara ileti web sitenizi aktif olarak kullanmamaktadır. Bildirimler, gönderilen bilgiler kullanıcının cihazında görüntülenir. Farklı iletişim türlerini push bildirimi olmadan bildirim gönderebilirsiniz. Bir gün proje yaşam döngüsü kullanıcıya yönelik bildirimler olmadan push mesajları (sessiz push) ancak tarayıcılar tarafından izin verilmiyor. Pratikte ise genellikle birlikte kullanılırlar. Teknik bilgisi olmayan bir kullanıcı muhtemelen aktarma arasındaki farkı anlamayacaktır. mesajları ve bildirimleri etkinleştirebilirsiniz. Bu koleksiyonda şu durumlarda push bildirimleri diyoruz. Bunlar, kullanıcılara bir mesaj ve bunu bir bildirim olarak görüntüleyin. Push mesajları dediğimizde kendi başına itme teknolojisini kastediyoruz. Bildirimler dediğimizde, bildirim teknolojisini tek başına kastediyoruz.

Push bildirimlerini neden kullanmalısınız?

  • Push bildirimleri, kullanıcılar açısından zamanında, alakalı, ve kesin bilgiler sağlayın.
  • Push bildirimleri, web sitesi sahipleri için kullanıcı sayısının en iyi yollarını bulmaya çalışırsınız.
ziyaret edin.

Push bildirimleri nasıl çalışır?

Özet olarak push bildirimlerinin uygulanmasına ilişkin temel adımlar şunlardır:

  1. Kullanıcıdan push bildirimleri gönderme izni istemek için istemci mantığı ekleme ve sonra istemci tanımlayıcı bilgilerini bir veritabanında depolanması için sunucunuza gönderebilirsiniz.
  2. Mesajları istemci cihazlarına aktarmak için sunucu mantığı ekleniyor.
  3. Cihaza aktarılan mesajları almak için istemci mantığı ekleme bildirim olarak görüntüleyebilirsiniz.

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 push bildirimleri göndermek için kullanıcının iznini alması gerekir. Bu, Evet düğmesini tıklamak gibi bir kullanıcı hareketiyle tetiklenmelidir Do you want to receive push notifications? isteminin yanına. Bu onaydan sonra Notification.requestPermission() numaralı telefonu arayın. İşletim sistemi veya Tarayıcı, kullanıcının cihazındaki tarayıcı üzerinde, büyük olasılıkla kullanıcı push bildirimlerini etkinleştirmek istiyor. Bu kullanıcı arayüzü platformlar arasında farklılık gösterir.

İstemcinin push bildirimlerine abone olmasını sağlama

İzin aldıktan sonra, web sitenizin Kullanıcının push bildirimlerine abone olmasını sağlar. Bu işlem JavaScript üzerinden yapılır, Push API'sini kullanarak. Ortak bir kimlik doğrulama anahtarı sağlamanız gerekir Bu konu hakkında daha fazla bilgi edineceksiniz. Şu tarihten sonra: abonelik işlemini başlattığınızda, tarayıcı bir ağ isteğinde bulunur. aktarma hizmeti olarak bilinen bir web hizmetine gönderebilirsiniz. Bu konu hakkında daha sonra bilgi vereceğiz.

Aboneliğin başarılı olduğu varsayıldığında, tarayıcı bir PushSubscription nesnesini tanımlayın. Bu verileri uzun süre saklamanız gerekir. Genellikle bu işlem, bilgileri kontrol ettiğiniz bir sunucuya göndererek yapılır. ve sunucunun verileri bir veritabanında depolamasını sağlamak.

Push mesajı gönderme izni alın. PushSubscription'ı edinin. Gönder
Aboneliği sunucunuza gönderin.

Push mesajı gönderme

Sunucunuz push mesajını doğrudan bir istemciye göndermez. CEVAP push hizmeti bunu yapar. Push hizmeti, web sitenizin kullanıcının tarayıcı tedarikçi firması. Bir müşteriye push bildirimi göndermek istediğinizde bir push hizmetine web hizmeti isteği gönderin. Web hizmeti, push hizmetine gönderdiğiniz istek, web push protokolü isteği olarak bilinir. İlgili içeriği oluşturmak için kullanılan web push protokolü isteği şunları içermelidir:

  • Mesaja hangi verilerin dahil edileceği.
  • Mesajın hangi istemciye gönderileceğini belirleyin.
  • Push hizmetinin mesajı nasıl iletmesi gerektiğine ilişkin talimatlar. Örneğin, push hizmetinin iletiyi gönderme girişiminde durması gerektiğini belirtebilir (10 dakika sonra).

Normalde web push protokolü isteğini sizin kontrolünüzdeki bir sunucu üzerinden yaparsınız. Elbette, sunucunuzun ham web hizmeti isteğini oluşturması gerekmez kendisi. Bunu sizin için yapabileceğiniz kitaplıklar vardır: web-push-libs'yi kullanın. Ancak temel mekanizma, web hizmeti isteği gönderir.

Sunucunuz push hizmetine bir web push protokolü isteği gönderir. Push hizmeti de iletiyi kullanıcının cihazına gönderir.

Push hizmeti isteğinizi alır, kimliğini doğrular ve aktarma işlemini yönlendirir uygun istemciye gönderilir. İ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 siz bir kontrolü yoktur. Web push protokolü belirtildiğinden bu bir sorun değildir isteği standartlaştırılır. Diğer bir deyişle, tarayıcı sağlayıcısının hangi push hizmetini yardımcı oluyorum. Web push protokolü isteğinizin teknik özelliklere uyduğundan emin olmanız yeterlidir. Diğer hususların yanı sıra, spesifikasyonda isteğin belirli başlıkları içermesi gerekir. ve veriler baytlar halinde gönderilmelidir.

Ancak, web push protokolünü gönderdiğinizden emin olmanız gerekir. isteği doğru push hizmetine gönderin. The PushSubscription verileri abonelik işlemi sırasında size döndürülen tarayıcı bu ekleyebilirsiniz. PushSubscription nesnesi şuna benzer:

{
  "endpoint": "https://fcm.googleapis.com/fcm/send/c1KrmpTuRm…",
  "expirationTime": null,
  "keys": {
    "p256dh": "BGyyVt9FFV…",
    "auth": "R9sidzkcdf"
  }
}

endpoint'nin alan adı aslında push hizmetidir. endpoint, push hizmetinin belirlenmesine yardımcı olan istemci tanımlayıcısı bilgisidir istemciyi tam olarak hangi istemciye aktaracağınızı belirleyin.

keys, şifreleme için kullanılır. Bu konu, bir sonraki bölümde açıklanmıştır.

Push mesajını şifreleme

Push hizmetine gönderdiğiniz veriler şifrelenmiş olmalıdır. Bu durum, push hizmetinin istemciye gönderdiğiniz verileri görüntülemesini engellemesine olanak tanır. Hangi push hizmetinin kullanılacağına tarayıcı tedarikçisinin karar verdiğini ve push hizmeti teorik olarak güvenli olmayabilir. Sunucunuz, web push protokolünü şifrelemek için PushSubscription içinde sağlanan keys kabul edersiniz.

Web push protokolü isteklerinizi imzalama

Push hizmeti, başkalarının yardımcı olur. Teknik olarak bunu yapmanız gerekmez fakat Chrome için bunu gerektirir. Firefox'ta isteğe bağlıdır. Diğer tarayıcılarda gerekebilir daha avantajlı bir konumda olursunuz.

Bu iş akışı, sizin için benzersiz bir özel anahtar ve ortak anahtar içerir. bir uygulamadır. Kimlik doğrulama süreci yaklaşık olarak şu şekilde çalışır:

  • Özel ve ortak anahtarı tek seferlik bir görev olarak oluşturursunuz. Kombinasyon genel anahtarın ortak ve gizli anahtarı uygulama sunucusu anahtarları hakkında daha fazla bilgi edinin. Bunları VAPID olarak da görebilirsiniz. tuşlar. VAPID bu kimlik doğrulama işlemini tanımlayan spesifikasyon.
  • Bir istemciyi JavaScript kodunuzdan push bildirimleri almak için abone olduğunuzda herkese açık anahtarınızı sağlar. Push hizmeti endpoint oluşturduğunda ise sağlanan ortak anahtarı endpoint ile ilişkilendirir.
  • Web push protokolü isteği gönderdiğinizde bazı JSON bilgilerini imzalarsınız özel anahtarınızla değiştirin.
  • Push hizmeti, Web push protokolü isteğinizi aldığında depolanan ortak anahtarı kullanın. İmza geçerliyse push hizmeti, isteğin eşleşen özel anahtar var.

Push mesajının teslimini özelleştirme

Web push protokolü istek spesifikasyonu da push hizmetinin istemciye push mesajı göndermeyi deneme şeklini özelleştirebilirsiniz. Örneğin, şunları özelleştirebilirsiniz:

  • Bir iletinin Geçerlilik Süresi (TTL); push hizmetinin ne kadar süreyle tamamlanması gerektiğini tanımlar. bir mesaj iletmeyi deneyin.
  • Mesajın aciliyeti; push hizmetinin verileri koruduğu durumlarda faydalıdır. müşterinin pil ömrünü uzatır.
  • Aynı konudaki tüm bekleyen mesajların yerine geçen mesaj konusu en son iletiyle birlikte.

Aktarılan mesajları bildirim olarak al ve görüntüle

Web push protokolü isteğini push hizmetine göndermenizin ardından push hizmeti, isteğiniz, aşağıdaki etkinliklerden biri gerçekleşene kadar sıraya alındı:

  1. İstemci çevrimiçi olur ve push hizmeti push mesajını iletir.
  2. İletinin süresi dolar.

İstemci tarayıcısı aktarılan bir iletiyi aldığında push iletisinin şifresini çözer verileri ve hizmetinize bir push etkinliği gönderir çalışanı olarak tanımlar. Hizmet çalışanı web siteniz hazır olsa bile arka planda çalışabilen JavaScript kodu açılış sayfası veya tarayıcı kapalıdır. Hizmet çalışanınızın push etkinliğinde bilgileri görüntülemek için ServiceWorkerRegistration.showNotification() işlevini çağırdığınız işleyici bildirim olarak alır.

Mesaj cihaza ulaşır. Tarayıcı, hizmet çalışanını uyandırır. Push etkinliği gönderilir.

Yakında gidilecek yerler

Kod laboratuvarları