WebPush-Server

Sende WebPush-Benachrichtigungen von einem Delphi-Server. Integrierte VAPID-Signierung, AES128GCM-Payload-Verschlüsselung und die von der Spezifikation geforderten Endpunkte zur Abonnementverwaltung.

TsgcWSAPIServer_WebPush

WebPush-Relying-Party-Komponente — registriere Abonnements, verschlüssele Payloads (RFC 8291), signiere Anfragen mit VAPID (RFC 8292) und sende per POST an den Push-Endpunkt des Nutzers.

Komponentenklasse

TsgcWSAPIServer_WebPush

Protokoll

WebPush (RFC 8030)

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Enterprise

Server platzieren, Benachrichtigung senden

Konfiguriere das VAPID-Schlüsselpaar, hänge den eingebetteten TsgcWebPush_Client an (oder nutze ihn direkt) und rufe dann SendNotification mit dem Abonnement-Endpunkt und der Payload auf.

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;

  // later, when you have a subscription record
  WebPush.SendNotification(
    'https://fcm.googleapis.com/wp/...', // endpoint
    'p256dh-public-key', // from PushSubscription.getKey(p256dh)
    'auth-secret', // from PushSubscription.getKey(auth)
    '{"title":"Hello","body":"Notification body"}');
end;

Was steckt drin

Ein vollständiges WebPush-Relay — verwaltet Abonnements und sendet VAPID-signierte, AES128GCM-verschlüsselte Benachrichtigungen.

Abonnement-Endpunkte

Hostet den POST /webpush/subscribe- + DELETE /webpush/unsubscribe-Vertrag auf dem eingebetteten HTTP-Server, sodass Browser-Clients ihre PushSubscription bei dir registrieren können.

VAPID-Signierung

Gemäß RFC 8292 signiert die Komponente jeden Push mit einem ES256-JWT und fügt den VAPID-Public-Key im Crypto-Key-Header ein. Der Betreff-Kontakt (mailto:) ist konfigurierbar.

aes128gcm-Verschlüsselung

Implementiert die RFC-8291-Nachrichtenverschlüsselung: leitet das gemeinsame Geheimnis per ECDH gegen das p256dh des Nutzers ab, berechnet HKDF-abgeleitete Schlüssel und verschlüsselt mit AES128GCM.

Payload-Größenbehandlung

Füllt Payloads bis zum empfohlenen Maximum auf, damit die Nachrichtenlänge nicht aus dem Chiffretext abgeleitet werden kann — entspricht den Erwartungen der Browser-Push-Dienste.

Eingebetteter Client

TsgcWebPush_Client ist ein Geschwister, das nur Benachrichtigungen sendet, ohne Abonnements zu hosten — praktisch, wenn deine Abonnements in einem separaten Dienst leben.

TTL / Dringlichkeit

Standard-TTL-, Urgency- und Topic-Header sind als Methodenparameter verfügbar, mit denen du dem Push-Dienst mitteilst, wie lange unzugestellte Benachrichtigungen aufbewahrt werden sollen.

Spezifikationen & Referenzen

Maßgebliche Quellen für das Protokoll, das diese Komponente implementiert.

Dokumentation & Demos

Springe direkt zur Komponentenreferenz, hol dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.

Online-Hilfe — WebPush Vollständige Eigenschaften-, Methoden- und Ereignisreferenz für diese Komponente.
Demo-Projekt — Demos\20.HTTP_Protocol\11.WebPush_Notifications Sofort lauffähiges Beispielprojekt. Im sgcWebSockets-Paket enthalten — lade die Testversion unten herunter.
Technisches Dokument (PDF) Funktionen, Schnellstart, Codebeispiele für Delphi & C++ Builder sowie Primärquellen — nur diese Komponente.
Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek behandelt.

Bereit, WebPush-Benachrichtigungen zu senden?

Lade die kostenlose Testversion herunter und ergänze deinen Delphi-Server um VAPID-signiertes WebPush.