WebPush 서버

Delphi 서버에서 WebPush 알림을 전송하세요. VAPID 서명, AES128GCM 페이로드 암호화, 명세가 요구하는 구독 관리 엔드포인트가 내장되어 있어요.

TsgcWSAPIServer_WebPush

WebPush relying-party 컴포넌트예요 — 구독을 등록하고, 페이로드를 암호화하고(RFC 8291), VAPID(RFC 8292)로 요청에 서명한 뒤 사용자의 푸시 엔드포인트로 POST해요.

컴포넌트 클래스

TsgcWSAPIServer_WebPush

프로토콜

WebPush (RFC 8030)

플랫폼

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을 서버에 등록할 수 있어요.

VAPID 서명

RFC 8292에 따라 컴포넌트가 각 푸시에 ES256 JWT로 서명하고 Crypto-Key 헤더에 VAPID 공개 키를 포함시켜요. Subject 연락처(mailto:)는 구성 가능해요.

aes128gcm 암호화

RFC 8291 메시지 암호화를 구현해요: 사용자의 p256dh를 사용해 ECDH로 공유 비밀을 유도하고, HKDF로 키를 계산한 뒤 AES128GCM으로 암호화해요.

페이로드 크기 처리

권장 최대치까지 페이로드를 패딩해 암호문에서 메시지 길이를 유추할 수 없어요 — 브라우저 푸시 서비스가 기대하는 방식과 일치해요.

내장 클라이언트

TsgcWebPush_Client는 구독을 호스팅하지 않고 알림만 전송하는 형제 컴포넌트예요 — 구독이 별도 서비스에 있을 때 유용해요.

TTL / urgency

표준 TTL, Urgency, Topic 헤더가 메서드 매개변수로 노출되어, 푸시 서비스가 미전달 알림을 얼마나 보관할지 지정할 수 있어요.

명세 및 참고 자료

이 컴포넌트가 구현하는 프로토콜의 공인 출처예요.

문서 및 데모

컴포넌트 레퍼런스로 바로 이동하고, 바로 실행할 수 있는 데모 프로젝트를 받아보고, 체험판을 다운로드하세요.

온라인 도움말 — WebPush 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요.
데모 프로젝트 — Demos\20.HTTP_Protocol\11.WebPush_Notifications 바로 실행할 수 있는 예제 프로젝트예요. sgcWebSockets 패키지에 포함되어 있으니 아래에서 체험판을 다운로드해 보세요.
기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 출처 참고 자료예요.
사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서예요.

WebPush 알림을 전송할 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi 서버에 VAPID 서명 WebPush를 추가해 보세요.