WebPush 서버
Delphi 서버에서 WebPush 알림을 전송하세요. VAPID 서명, AES128GCM 페이로드 암호화, 명세가 요구하는 구독 관리 엔드포인트가 내장되어 있어요.
Delphi 서버에서 WebPush 알림을 전송하세요. VAPID 서명, AES128GCM 페이로드 암호화, 명세가 요구하는 구독 관리 엔드포인트가 내장되어 있어요.
WebPush relying-party 컴포넌트예요 — 구독을 등록하고, 페이로드를 암호화하고(RFC 8291), VAPID(RFC 8292)로 요청에 서명한 뒤 사용자의 푸시 엔드포인트로 POST해요.
TsgcWSAPIServer_WebPush
Windows, macOS, Linux, iOS, Android
Enterprise
VAPID 키 쌍을 구성하고, 내장 TsgcWebPush_Client를 부착하거나 직접 사용한 뒤, 구독 엔드포인트와 페이로드로 SendNotification을 호출하세요.
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;
완전한 WebPush 중계예요 — 구독을 관리하고 VAPID로 서명되고 AES128GCM으로 암호화된 알림을 전송해요.
내장 HTTP 서버에 POST /webpush/subscribe + DELETE /webpush/unsubscribe 계약을 호스팅하므로 브라우저 클라이언트가 PushSubscription을 서버에 등록할 수 있어요.
RFC 8292에 따라 컴포넌트가 각 푸시에 ES256 JWT로 서명하고 Crypto-Key 헤더에 VAPID 공개 키를 포함시켜요. Subject 연락처(mailto:)는 구성 가능해요.
RFC 8291 메시지 암호화를 구현해요: 사용자의 p256dh를 사용해 ECDH로 공유 비밀을 유도하고, HKDF로 키를 계산한 뒤 AES128GCM으로 암호화해요.
권장 최대치까지 페이로드를 패딩해 암호문에서 메시지 길이를 유추할 수 없어요 — 브라우저 푸시 서비스가 기대하는 방식과 일치해요.
TsgcWebPush_Client는 구독을 호스팅하지 않고 알림만 전송하는 형제 컴포넌트예요 — 구독이 별도 서비스에 있을 때 유용해요.
표준 TTL, Urgency, Topic 헤더가 메서드 매개변수로 노출되어, 푸시 서비스가 미전달 알림을 얼마나 보관할지 지정할 수 있어요.
이 컴포넌트가 구현하는 프로토콜의 공인 출처예요.
컴포넌트 레퍼런스로 바로 이동하고, 바로 실행할 수 있는 데모 프로젝트를 받아보고, 체험판을 다운로드하세요.
| 온라인 도움말 — WebPush 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요. | 열기 | |
| 데모 프로젝트 — Demos\20.HTTP_Protocol\11.WebPush_Notifications 바로 실행할 수 있는 예제 프로젝트예요. sgcWebSockets 패키지에 포함되어 있으니 아래에서 체험판을 다운로드해 보세요. | 열기 | |
| 기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 출처 참고 자료예요. | 열기 | |
| 사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서예요. | 열기 |