🔔 推送通知服务

基于 Cloudflare Worker 的实时通知推送系统

1订阅通知

首先需要订阅通知服务,获取您的唯一用户ID。

🔄 检查通知权限中...

2测试通知

发送一个测试通知到您的浏览器。

测试通知

这是一条测试消息

3API 使用指南

其他应用可以通过以下API接口发送通知:

🔗 API 端点

POST https://your-worker.your-subdomain.workers.dev/push Content-Type: application/json { "userId": "您的用户ID", "title": "通知标题", "body": "通知内容", "icon": "/icon.png", "data": { "url": "https://example.com", "customData": "any value" } }

📦 批量推送

POST https://your-worker.your-subdomain.workers.dev/push/batch Content-Type: application/json { "userIds": ["user1", "user2", "user3"], "title": "群发通知", "body": "这是一条群发消息" }

🔧 JavaScript 示例

// 发送单个通知 async function sendNotification(userId, title, body) { const response = await fetch('https://your-worker.your-subdomain.workers.dev/push', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ userId: userId, title: title, body: body, data: { timestamp: Date.now(), source: 'my-app' } }) }); const result = await response.json(); console.log('通知发送结果:', result); } // 使用示例 sendNotification('your-user-id', '新消息', '您有一条新消息');

4部署配置

在 Cloudflare Workers 中部署此服务需要以下配置:

📝 环境变量

VAPID_PUBLIC_KEY=你的VAPID公钥 VAPID_PRIVATE_KEY=你的VAPID私钥

💾 KV 命名空间

变量名: NOTIFICATIONS_KV KV 命名空间: 用于存储用户订阅信息

🔑 生成 VAPID 密钥

npm install -g web-push web-push generate-vapid-keys