Servidor WebPush
Envía notificaciones WebPush desde un servidor Delphi. Firmado VAPID integrado, cifrado de payload AES128GCM y los endpoints de gestión de suscripciones que exige la especificación.
Envía notificaciones WebPush desde un servidor Delphi. Firmado VAPID integrado, cifrado de payload AES128GCM y los endpoints de gestión de suscripciones que exige la especificación.
Componente relying-party WebPush — registra suscripciones, cifra payloads (RFC 8291), firma peticiones con VAPID (RFC 8292) y envía POST al endpoint push del usuario.
TsgcWSAPIServer_WebPush
Windows, macOS, Linux, iOS, Android
Enterprise
Configura el par de claves VAPID, vincula el TsgcWebPush_Client embebido (o úsalo directamente) y luego llama a SendNotification con el endpoint de suscripción y el 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;
Un relay WebPush completo — gestiona suscripciones y envía notificaciones cifradas con AES128GCM y firmadas con VAPID.
Hospeda el contrato POST /webpush/subscribe + DELETE /webpush/unsubscribe en el servidor HTTP embebido, para que los clientes de navegador puedan registrar su PushSubscription contigo.
Según el RFC 8292 el componente firma cada push con un JWT ES256 e incluye la clave pública VAPID en la cabecera Crypto-Key. El contacto Subject (mailto:) es configurable.
Implementa el cifrado de mensajes del RFC 8291: deriva el secreto compartido con ECDH contra el p256dh del usuario, calcula claves derivadas con HKDF y cifra con AES128GCM.
Rellena los payloads hasta el máximo recomendado para que la longitud del mensaje no pueda inferirse del ciphertext — coincide con lo que esperan los servicios push de navegador.
TsgcWebPush_Client es un hermano que solo envía notificaciones sin hospedar suscripciones — útil si tus suscripciones residen en un servicio aparte.
Las cabeceras estándar TTL, Urgency y Topic se exponen como parámetros del método, lo que te permite indicar al servicio push cuánto retener las notificaciones no entregadas.
Fuentes autorizadas para el protocolo que implementa este componente.
Accede directamente a la referencia del componente, descarga el proyecto demo listo para ejecutar y descarga la prueba.
| Ayuda en línea — WebPush Referencia completa de propiedades, métodos y eventos de este componente. | Abrir | |
| Proyecto demo — Demos\20.HTTP_Protocol\11.WebPush_Notifications Proyecto de ejemplo listo para ejecutar. Se incluye en el paquete sgcWebSockets — descarga la prueba más abajo. | Abrir | |
| Documento técnico (PDF) Características, inicio rápido, ejemplos de código para Delphi y C++ Builder y referencias de fuentes primarias — solo este componente. | Abrir | |
| Manual de usuario (PDF) Manual completo que cubre todos los componentes de la librería. | Abrir |