Serveur WebPush
Envoie des notifications WebPush depuis un serveur Delphi. Signature VAPID intégrée, chiffrement AES128GCM des charges utiles et endpoints de gestion d'abonnements requis par la spécification.
Envoie des notifications WebPush depuis un serveur Delphi. Signature VAPID intégrée, chiffrement AES128GCM des charges utiles et endpoints de gestion d'abonnements requis par la spécification.
Composant relying-party WebPush — enregistre les abonnements, chiffre les charges utiles (RFC 8291), signe les requêtes avec VAPID (RFC 8292), POST vers l'endpoint push de l'utilisateur.
TsgcWSAPIServer_WebPush
Windows, macOS, Linux, iOS, Android
Enterprise
Configure la paire de clés VAPID, attache le TsgcWebPush_Client embarqué (ou utilise-le directement), puis appelle SendNotification avec l'endpoint d'abonnement et la charge utile.
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;
Un relais WebPush complet — gère les abonnements et envoie des notifications signées VAPID et chiffrées AES128GCM.
Héberge le contrat POST /webpush/subscribe + DELETE /webpush/unsubscribe sur le serveur HTTP embarqué, pour que les clients navigateur puissent enregistrer leur PushSubscription auprès de toi.
Conformément à RFC 8292, le composant signe chaque push avec un JWT ES256 et inclut la clé publique VAPID dans l'en-tête Crypto-Key. Le contact du subject (mailto:) est configurable.
Implémente le chiffrement de message RFC 8291 : dérive le secret partagé par ECDH contre le p256dh de l'utilisateur, calcule les clés dérivées HKDF, chiffre avec AES128GCM.
Remplit les charges utiles jusqu'au maximum recommandé pour que la longueur du message ne puisse pas être déduite du texte chiffré — correspond à ce qu'attendent les services push des navigateurs.
TsgcWebPush_Client est un composant frère qui se contente d'envoyer des notifications sans héberger d'abonnements — utile si tes abonnements vivent dans un service séparé.
Les en-têtes standards TTL, Urgency et Topic sont exposés en tant que paramètres de méthode, te permettant d'indiquer au service push pendant combien de temps conserver les notifications non livrées.
Sources de référence pour le protocole que ce composant implémente.
Lien direct vers la référence du composant, récupère le projet de démo prêt à l'emploi et télécharge l'essai.
| Aide en ligne — WebPush Référence complète des propriétés, méthodes et événements de ce composant. | Ouvrir | |
| Projet de démo — Demos\20.HTTP_Protocol\11.WebPush_Notifications Projet d'exemple prêt à l'emploi. Livré avec le paquet sgcWebSockets — télécharge l'essai ci-dessous. | Ouvrir | |
| Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code pour Delphi et C++ Builder, et références de sources primaires — ce composant uniquement. | Ouvrir | |
| Manuel utilisateur (PDF) Manuel complet couvrant chaque composant de la bibliothèque. | Ouvrir |