WebPush Sunucusu

Bir Delphi sunucusundan WebPush bildirimleri gönderin. Yerleşik VAPID imzalama, AES128GCM yük şifreleme ve spesifikasyonun gerektirdiği abonelik yönetimi uç noktaları.

TsgcWSAPIServer_WebPush

WebPush bağımlı taraf bileşeni — abonelikleri kaydedin, yükleri şifreleyin (RFC 8291), istekleri VAPID ile imzalayın (RFC 8292), kullanıcının push uç noktasına POST edin.

Bileşen sınıfı

TsgcWSAPIServer_WebPush

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Enterprise

Sunucuyu bırakın, bir bildirim gönderin

VAPID anahtar çiftini yapılandırın, gömülü TsgcWebPush_Client'i ekleyin (veya doğrudan kullanın), ardından abonelik uç noktası ve yükle SendNotification çağırın.

uses
  sgcWebSocket, sgcWebSocket_Server_APIs;

var
  Server: TsgcWebSocketHTTPServer;
  WebPush: TsgcWSAPIServer_WebPush;
begin
  Server := TsgcWebSocketHTTPServer.Create(nil);
  Server.Port := 8443;
  Server.SSL  := True;

  WebPush := TsgcWSAPIServer_WebPush.Create(nil);
  WebPush.Server := Server;
  WebPush.VAPID.Subject := 'mailto:admin@example.com';
  WebPush.VAPID.PrivateKey.LoadFromFile('vapid-priv.pem');
  WebPush.VAPID.PublicKey.LoadFromFile ('vapid-pub.pem');

  Server.Active := True;

  // daha sonra, bir abonelik kaydınız olduğunda
  WebPush.SendNotification(
    'https://fcm.googleapis.com/wp/...', // uç nokta
    'p256dh-public-key', // PushSubscription.getKey(p256dh)'den
    'auth-secret', // PushSubscription.getKey(auth)'den
    '{"title":"Hello","body":"Notification body"}');
end;

İçinde neler var

Eksiksiz bir WebPush aktarımı — abonelikleri yönetir ve VAPID imzalı, AES128GCM şifreli bildirimler gönderir.

Abonelik uç noktaları

Gömülü HTTP sunucusunda POST /webpush/subscribe + DELETE /webpush/unsubscribe sözleşmesini barındırır; böylece tarayıcı istemcileri PushSubscription'larını sizinle kaydedebilir.

VAPID imzalama

RFC 8292 uyarınca bileşen her push'u bir ES256 JWT ile imzalar ve VAPID genel anahtarını Crypto-Key başlığına dahil eder. Konu iletişimi (mailto:) yapılandırılabilir.

aes128gcm şifreleme

RFC 8291 mesaj şifrelemesini uygular: kullanıcının p256dh'sine karşı ECDH ile paylaşılan sırrı türetir, HKDF ile türetilen anahtarları hesaplar, AES128GCM ile şifreler.

Yük boyutu işleme

Mesaj uzunluğunun şifreli metinden çıkarılamaması için yükleri önerilen maksimuma kadar doldurur — tarayıcı push servislerinin beklediğiyle eşleşir.

Gömülü istemci

TsgcWebPush_Client, abonelikleri barındırmadan yalnızca bildirim gönderen bir kardeş bileşendir — abonelikleriniz ayrı bir serviste bulunuyorsa faydalıdır.

TTL / aciliyet

Standart TTL, Urgency ve Topic başlıkları metot parametreleri olarak sunulur; böylece push servisine teslim edilmemiş bildirimleri ne kadar süre saklayacağını söyleyebilirsiniz.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı protokol için yetkili kaynaklar.

Belgeler ve Demolar

Bileşen referansına doğrudan bağlanın, çalışmaya hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım — WebPush Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\20.HTTP_Protocol\11.WebPush_Notifications Çalışmaya hazır örnek proje. sgcWebSockets paketinin içinde gelir — denemeyi aşağıdan indirin.
Teknik Belge (PDF) Özellikler, hızlı başlangıç, Delphi ve C++ Builder için kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.

WebPush Bildirimleri Göndermeye Hazır mısınız?

Ücretsiz denemeyi indirin ve Delphi sunucunuza VAPID imzalı WebPush ekleyin.