webpush-client-go
は、Golangで実装されたWebPushを受信するためのクライアントおよびライブラリです。
- RFC8188メッセージの暗号化・復号
aes128gcm
のみのサポート
- RFC8291メッセージの暗号化・復号
- AutoPush (Mozilla Push Service) のクライアント
- Application Serverごとのクライアント
- NicoPush: https://www.nicovideo.jp
examplesを参照してください。
- examples/ece: 単純なRFC8291メッセージの暗号化・復号
- examples/nicopush: ニコニコのWebPush通知を受信します(AutoPush)
NICONICO_USER_SESSION_VALUE
にnicovideo.jp
のuser_session
クッキーの値を指定してください。
echo '{"user_session":"NICONICO_USER_SESSION_VALUE"}' > config.json
go run ./examples/nicopush/main.go
- RFCs
- RFC8188: HTTP用のコンテンツ暗号化の仕様
- Content-Encoding: aes128gcm とは (RFC8188) - ASnoKaze blog: RFC8188の要旨を日本語で解説している
- RFC8291: RFC8188を拡張した、プッシュ通知の暗号化の仕様
- RFC8188: HTTP用のコンテンツ暗号化の仕様
- Encrypt Content-Encoding
- web-push-libs/ecec: RFC8188/RFC8291のC言語実装
- web-push-libs/encrypted-content-encoding: RFC8188/RFC8291のPython/Node.js実装(
http_ece
) - web-push-libs/web-push-php: ウェブプッシュサーバのPHP実装
- web-push-php/src/Encryption.php: 暗号化ペイロード構築部分
- AutoPush
- Design - Mozilla Push Service Documentation: Firefoxで使用されるプッシュサーバ(Mozilla Push Service)のドキュメント
- Architecture - Mozilla AutoPush Server: Mozilla Push ServiceのサーバであるAutoPushのドキュメント
- Architecture - autopush documentation: 廃止されたAutoPushのPython実装のドキュメント
- WebPush
- Магия WebPush в Mozilla Firefox. Взгляд изнутри - Habr: FirefoxのWebPush実装を解説している
- MANKAのBlog
- 通过 Web Push 接收最新的推文: Twitterのプッシュ通知を例に、詳細を解説しているブログポスト
- 解密来自 Web Push 的 AES-GCM 消息: 上記のポストの暗号化周りを詳細に解説している
- tomoyukilabs - Qiita
- SherClockHolmes/webpush-go: WebPush暗号化のGo実装
- NicoPush
- ニコ生のプッシュ通知の受信の手順 - nicoLiveCheckTool/push.md: C#でニコニコのWebPush通知を受信する手順を解説している