Server WebPush
Invia notifiche WebPush da un server Delphi. Firma VAPID integrata, cifratura del payload AES128GCM e gli endpoint di gestione delle sottoscrizioni richiesti dalla specifica.
Invia notifiche WebPush da un server Delphi. Firma VAPID integrata, cifratura del payload AES128GCM e gli endpoint di gestione delle sottoscrizioni richiesti dalla specifica.
Componente relying-party WebPush — registra le sottoscrizioni, cifra i payload (RFC 8291), firma le richieste con VAPID (RFC 8292), effettua POST verso l'endpoint push dell'utente.
TsgcWSAPIServer_WebPush
Windows, macOS, Linux, iOS, Android
Enterprise
Configura la coppia di chiavi VAPID, collega il TsgcWebPush_Client integrato (o usalo direttamente), poi chiama SendNotification con l'endpoint di sottoscrizione e il 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 — gestisce le sottoscrizioni e invia notifiche cifrate AES128GCM firmate VAPID.
Ospita il contratto POST /webpush/subscribe + DELETE /webpush/unsubscribe sul server HTTP integrato, così i client browser possono registrare presso di te la loro PushSubscription.
Secondo RFC 8292 il componente firma ogni push con un JWT ES256 e include la chiave pubblica VAPID nell'header Crypto-Key. Il contatto soggetto (mailto:) è configurabile.
Implementa la cifratura dei messaggi RFC 8291: deriva il segreto condiviso con ECDH contro il p256dh dell'utente, calcola le chiavi derivate HKDF, cifra con AES128GCM.
Aggiunge padding ai payload fino al massimo consigliato, così la lunghezza del messaggio non può essere dedotta dal ciphertext — corrisponde a ciò che si aspettano i servizi push dei browser.
TsgcWebPush_Client è un fratello che invia solo notifiche senza ospitare sottoscrizioni — utile se le tue sottoscrizioni vivono in un servizio separato.
Gli header standard TTL, Urgency e Topic sono esposti come parametri di metodo, permettendoti di dire al servizio push per quanto tempo conservare le notifiche non consegnate.
Fonti autorevoli per il protocollo implementato da questo componente.
Collegamenti diretti al riferimento del componente, al progetto demo pronto all'uso e al download della versione di prova.
| Guida online — WebPush Riferimento completo di proprietà, metodi ed eventi di questo componente. | Apri | |
| Progetto demo — Demos\20.HTTP_Protocol\11.WebPush_Notifications Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto. | Apri | |
| Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente. | Apri | |
| Manuale utente (PDF) Manuale completo che copre ogni componente della libreria. | Apri |