WebPush サーバー
Delphi サーバーから WebPush 通知を送信できます。VAPID 署名、AES128GCM ペイロード暗号化、および仕様で定められたサブスクリプション管理エンドポイントが組み込まれています。
Delphi サーバーから WebPush 通知を送信できます。VAPID 署名、AES128GCM ペイロード暗号化、および仕様で定められたサブスクリプション管理エンドポイントが組み込まれています。
WebPush リライイングパーティコンポーネント — サブスクリプションの登録、ペイロードの暗号化(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 で署名し、VAPID 公開鍵を Crypto-Key ヘッダーに含めます。サブジェクトの連絡先(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) ライブラリ内のすべてのコンポーネントを網羅した総合マニュアルです。 | 開く |