WebPush Server
Envie notificações WebPush a partir de um servidor Delphi. Assinatura VAPID integrada, criptografia de payload AES128GCM e os endpoints de gerenciamento de assinaturas exigidos pela especificação.
Envie notificações WebPush a partir de um servidor Delphi. Assinatura VAPID integrada, criptografia de payload AES128GCM e os endpoints de gerenciamento de assinaturas exigidos pela especificação.
Componente WebPush relying-party — registra assinaturas, criptografa payloads (RFC 8291), assina requisições com VAPID (RFC 8292) e faz POST para o endpoint de push do usuário.
TsgcWSAPIServer_WebPush
Windows, macOS, Linux, iOS, Android
Enterprise
Configure o par de chaves VAPID, vincule o TsgcWebPush_Client integrado (ou use-o diretamente), depois chame SendNotification com o endpoint de assinatura e o 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;
Um relay WebPush completo — gerencia assinaturas e envia notificações criptografadas AES128GCM assinadas com VAPID.
Hospeda o contrato POST /webpush/subscribe + DELETE /webpush/unsubscribe no servidor HTTP integrado, permitindo que clientes de navegador registrem sua PushSubscription.
Conforme a RFC 8292, o componente assina cada push com um JWT ES256 e inclui a chave pública VAPID no header Crypto-Key. O contato Subject (mailto:) é configurável.
Implementa a criptografia de mensagem RFC 8291: deriva o segredo compartilhado via ECDH com o p256dh do usuário, calcula chaves derivadas por HKDF e criptografa com AES128GCM.
Adiciona padding nos payloads até o máximo recomendado para que o tamanho da mensagem não possa ser inferido a partir do texto cifrado — compatível com o que os serviços de push de navegadores esperam.
TsgcWebPush_Client é um componente irmão que apenas envia notificações sem hospedar assinaturas — útil quando suas assinaturas ficam em um serviço separado.
Os headers padrão TTL, Urgency e Topic são expostos como parâmetros de método, permitindo informar ao serviço de push por quanto tempo reter notificações não entregues.
Fontes oficiais do protocolo que este componente implementa.
Acesse a referência do componente, pegue o projeto demo pronto para executar e baixe a versão de avaliação.
| Ajuda online — WebPush Referência completa de propriedades, métodos e eventos deste componente. | Abrir | |
| Projeto demo — Demos\20.HTTP_Protocol\11.WebPush_Notifications Exemplo pronto para executar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo. | Abrir | |
| Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fontes primárias — somente deste componente. | Abrir | |
| Manual do usuário (PDF) Manual completo cobrindo todos os componentes da biblioteca. | Abrir |