發表文章

目前顯示的是有「Web Notification」標籤的文章

透過.net6 web api藉由websocket實作WebPush消息推送_如何判斷來自URL的GET請求是走 HTTP協議 還是WebSocket協議_user跟socket之間如何建立關聯

圖片
  https://sendpulse.com/features/webpush 在不同載具(client-side)有各自不同的通知響應方式 以之前blog介紹過的 Web Notification(Push)_使用html5原生Notification桌面通知 我們來探討Server-Side技術設計 一些網站早期為了實作推送功能,多半是透過ajax輪詢 ajax polling可能每隔1秒就從client端browser發送HTTP請求,再由server回傳 最新資料,這類傳統模式很明顯會有的缺點就是浪費較多的頻寬資源。 https://www.researchgate.net/figure/a-Server-side-notifications-mechanisms-AJAX-polling_fig5_236145030 HTML5 定義了新的WebSocket協定可以帶來更好節省server資源與頻寬的即時雙向通訊機制。 WebSocket別於Http協定可以支援持久連接。 其提供了一種在TCP連接上實踐全雙工通訊的協定 WebSocket可以讓Server主動向client端發送資料,別於過往的被動等待機制。 只要完成了第一次handshake,client跟server兩端就可建立持久性連線並進行雙向資料傳輸。 再各大瀏覽器支援程度也可以說是具有一定的成熟性 Websocket 通訊在傳輸資料量大小和效率方面比 HTTP 協定來得更佳, 特別是對於傳輸量大的、重複的資訊。 在 HTTP 協定中,每次請求都需加送標頭(每個請求至少8KB) 在 WebSockets 上初始請求後每條傳輸最少 2 個Byte 透過.net core web api實作WebPush消息推送 websocket配置 新增好專案 先安裝 websocket套件 在 Program.cs 配置 WebSockets 中介軟體: app.UseWebSockets(); 程式碼 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 var builder = WebApplication.CreateBuilder(args...

Web Notification(Push)_使用html5原生Notification桌面通知

圖片
 Web Notifications API 可將通知傳送至頁面以外的系統層級並顯示通知。 因此即使 Web Apps 處於閒置狀態,亦可傳送資訊予使用者。 https://www.bennish.net/web-notifications.html Web Notifications 技術使頁面可以發出通知,通知將被顯示在頁面之外的系統層面上。 能夠為用戶提供更好的體驗,即使用戶忙於其他工作時也可以收到來自頁面的消息通知, 例如一個新郵件的提醒,或者一個在線聊天室收到的消息提醒等等。 在 Apps 傳送通知之前,使用者必須先許可 Apps 的動作。只要 APIs 嘗試予網頁之外的東西互動,均必須先獲得使用者的授權。如此可避免濫發通知而影響使用經驗。 透過 Notification.permission 唯讀屬性, 要傳送通知的 Apps 將檢查目前的授權狀態。此屬性共有 3 組參數: default:使用者尚未給予任何權限 (因此不會顯示任何通知) granted:使用者允許接收到 Apps 的通知 denied:使用者拒絕接收 Apps 的通知 但在實際上到主機時候 會必須要有SSL才能work 程式碼範例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" /> <title> Document </title> </head> <body> <button> 點擊發起通知 </button> </body> <s...