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.
Sende WebPush-Benachrichtigungen von einem Delphi-Server. Integrierte VAPID-Signierung, AES128GCM-Payload-Verschlüsselung und die von der Spezifikation geforderten Endpunkte zur Abonnementverwaltung.
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.
TsgcWSAPIServer_WebPush
Windows, macOS, Linux, iOS, Android
Enterprise
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;
Ein vollständiges WebPush-Relay — verwaltet Abonnements und sendet VAPID-signierte, AES128GCM-verschlüsselte Benachrichtigungen.
Hostet den POST /webpush/subscribe- + DELETE /webpush/unsubscribe-Vertrag auf dem eingebetteten HTTP-Server, sodass Browser-Clients ihre PushSubscription bei dir registrieren können.
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.
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.
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.
TsgcWebPush_Client ist ein Geschwister, das nur Benachrichtigungen sendet, ohne Abonnements zu hosten — praktisch, wenn deine Abonnements in einem separaten Dienst leben.
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.
Maßgebliche Quellen für das Protokoll, das diese Komponente implementiert.
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. | Öffnen | |
| Demo-Projekt — Demos\20.HTTP_Protocol\11.WebPush_Notifications Sofort lauffähiges Beispielprojekt. Im sgcWebSockets-Paket enthalten — lade die Testversion unten herunter. | Öffnen | |
| Technisches Dokument (PDF) Funktionen, Schnellstart, Codebeispiele für Delphi & C++ Builder sowie Primärquellen — nur diese Komponente. | Öffnen | |
| Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek behandelt. | Öffnen |