主要目標是添加網站發送Web通知的能力,彈出系統通知以使用Html5推送API和服務工作人員提醒用戶。 不使用SignalR,它只能在站點打開時運行客戶端腳本。也應該能夠發送通知,如果網站已關閉,如上所述here - 這是可能的。Asp Net核心Web推送通知
Here即將推式API好文章,並提供了良好的example 但它使用的的NodeJS服務器和web-push組件將請求發送到通知服務。
找不到任何.NET示例。我想到了兩種解決方法。
首先,是寫一切從基礎上推式API文章note有關服務器劃傷:
當您發送到無數據的推送消息,你可以將它發送到使用HTTP POST請求的端點URL。但是,當推送消息包含數據時,您需要對其進行加密,這是一個非常複雜的過程。
其次,就是用AspNetCore.NodeServices(article它)來執行的node.js腳本文件
是否有更多的解決方案?也許存在這樣的現成解決方案?
學科研究
3案件後:
- HTTP +舊的瀏覽器+ IE所有版本 - 使用SignalR +渲染使用通知HTML + JS
- HTTP +現代瀏覽器(Chrome瀏覽器, Firefox,Safary,Opera?,Edge)支持Notification API。 - 使用SignalR並使用js觸發原生瀏覽器通知使用
new Notification('Message')
- 支持Push API的HTTPS + Chrome(Mobile)可使用服務工作人員觸發關閉站點的本機通知。 Chrome的移動版本只能使用服務人員創建通知。
變得複雜了。哪裏不對?
可能的解決方案:
對於1,2例發現this庫。認爲這是一個良好的前端解決方案,具有良好的後備支持。 3例仍不知如何是好。
當前的解決方案。補充:2017年11月22日
- 沒有離線客戶通知支持
- 沒有移動支持
- 使用Chrome V62 +移動所有項目HTTPS - link
- 使用SignalR(0.2。0)用於發送推送到在線客戶端
- 使用pnotify v3 +顯示本機桌面或html通知。
- 等待pnotify V4.0.0(作者承諾Chrome移動設備的支持。Issue)
- 等待.NET 2.1的核心與SignalR 1.0到整個項目重寫它。
你有什麼理由不使用SignalR - 這將是能夠從後臺,在那裏你然後在回調與反應通知你的客戶HTML5推送API。 –
客戶希望通過從服務工作者腳本調用ServiceWorkerRegistration.showNotification生成的瀏覽器在移動設備和桌面上查看瀏覽器通知。因此,SignallR可以調用它,然後網站當前打開,但如果它關閉,則需要通知API。 – aleha
您可以使用[Pushpad](https://pushpad.xyz/docs/pushpad_pro_getting_started)及其[REST API](https://pushpad.xyz/docs/rest_api)(請參閱'POST/projects/PROJECT_ID/notifications' )。 – collimarco