發表文章

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

透過.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...