WebPush-server
Verstuur WebPush-notificaties vanuit een Delphi-server. Ingebouwde VAPID-ondertekening, AES128GCM-payload-versleuteling en de endpoints voor abonnementenbeheer die de specificatie vereist.
Verstuur WebPush-notificaties vanuit een Delphi-server. Ingebouwde VAPID-ondertekening, AES128GCM-payload-versleuteling en de endpoints voor abonnementenbeheer die de specificatie vereist.
WebPush-relying-party-component — registreer abonnementen, versleutel payloads (RFC 8291), onderteken requests met VAPID (RFC 8292) en POST naar het push-endpoint van de gebruiker.
TsgcWSAPIServer_WebPush
Windows, macOS, Linux, iOS, Android
Enterprise
Configureer het VAPID-sleutelpaar, koppel de ingebouwde TsgcWebPush_Client (of gebruik die direct) en roep daarna SendNotification aan met het subscription-endpoint en de payload.
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;
Een complete WebPush-relay — beheert abonnementen en verstuurt met VAPID ondertekende AES128GCM-versleutelde notificaties.
Host het contract POST /webpush/subscribe + DELETE /webpush/unsubscribe op de ingebouwde HTTP-server, zodat browser-clients hun PushSubscription bij jou kunnen registreren.
Volgens RFC 8292 ondertekent het component elke push met een ES256-JWT en plaatst de VAPID-publieke sleutel in de Crypto-Key-header. Subject-contact (mailto:) is configureerbaar.
Implementeert message-encryption volgens RFC 8291: leidt het gedeelde geheim af met ECDH tegen de p256dh van de gebruiker, berekent HKDF-afgeleide sleutels en versleutelt met AES128GCM.
Vult payloads tot het aanbevolen maximum aan, zodat de berichtlengte niet uit de ciphertext kan worden afgeleid — conform wat browser-push-services verwachten.
TsgcWebPush_Client is een verwante component die alleen notificaties verstuurt zonder abonnementen te hosten — handig als je abonnementen in een aparte service leven.
De standaardheaders TTL, Urgency en Topic zijn als methode-parameters beschikbaar, zodat je de push-service kunt vertellen hoelang onbestelde notificaties bewaard moeten blijven.
Autoritatieve bronnen voor het protocol dat dit component implementeert.
Direct linken naar de componentreferentie, het kant-en-klare demoproject pakken en de proefversie downloaden.
| Online help — WebPush Volledige referentie van eigenschappen, methoden en gebeurtenissen voor dit component. | Openen | |
| Demoproject — Demos\20.HTTP_Protocol\11.WebPush_Notifications Kant-en-klaar voorbeeldproject. Zit in het sgcWebSockets-pakket — download hieronder de proefversie. | Openen | |
| Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen dit component. | Openen | |
| Gebruikershandleiding (PDF) Uitgebreide handleiding voor elk component in de bibliotheek. | Openen |