主要目标是增加站点发送Web通知的能力,以弹出系统通知,以使用Html5 Push API和服务工作人员提醒用户.不使用SignalR,它只能在打开网站时运行客户端脚本.也应该是,如果网站被关闭,如提及发布通知的能力在这里 -这是可能的.
这是关于Push API的好文章并提供了很好的示例 但是它使用NodeJS作为服务器和web-push组件来向通知服务发送请求.
找不到任何.NET示例.我想到了两个解决方法.
首先,是基于关于服务器的Push API文章说明从头开始编写所有内容:
当您发送没有数据的推送消息时,您只需使用HTTP POST请求将其发送到端点URL.但是,当推送消息包含数据时,您需要对其进行加密,这是一个非常复杂的过程.
其次,是使用AspNetCore.NodeServices(关于它的文章)来执行node.js脚本文件
还有更多解决方案吗?也许存在现成的解决方案?
经过学科研究
3例:
new Notification('Message')
它变得复杂了.怎么了?
可能的解决方案:
对于1和2个案例找到了此存储库.认为这是一个很好的前端解决方案,具有良好的后备支持.对于3个案例仍然不知道该怎么做.
当前解决方案 补充:2017-11-22
我正在处理Google Chrome推送通知,我正在尝试将有效负载发送给谷歌Chrome工作者但是,我不知道我是如何收到此有效负载的.
我有一个API来创建和保存我的数据库中的通知,我需要通过https://android.googleapis.com/gcm/send
worker.js 发送和接收值
这是我的worker.js
self.addEventListener('push', function(event) {
var title = 'Yay a message.';
var body = 'We have received a push message.';
var icon = '/images/icon-192x192.png';
var tag = 'simple-push-demo-notification-tag';
event.waitUntil(
self.registration.showNotification(title, {
body: body,
icon: icon,
tag: tag
})
);
});
Run Code Online (Sandbox Code Playgroud)
这就是我打电话给GCM的方式
curl --header "Authorization: key=AIzaSyDQjYDxeS9MM0LcJm3oR6B7MU7Ad2x2Vqc" --header "Content-Type: application/json" https://android.googleapis.com/gcm/send -d "{ \"data\":{\"foo\":\"bar\"}, \"registration_ids\":[\"APA91bGqJpCmyCnSHLjY6STaBQEumz3eFY9r-2CHTtbsUMzBttq0crU3nEXzzU9TxNpsYeFmjA27urSaszKtA0WWC3yez1hhneLjbwJqlRdc_Yj1EiqLHluVwHB6V4FNdXdKb_gc_-7rbkYkypI3MtHpEaJbWsj6M5Pgs4nKqQ2R-WNho82mnRU\"]}"
Run Code Online (Sandbox Code Playgroud)
我试着去event.data
,但这是未定义的.
有没有人有任何想法或消化?