.net core 3.0 Signalr – 實現一個業務推送系統

  • 2019 年 10 月 5 日
  • 筆記

## 介紹 ASP.NET Core SignalR 是一個開源程式碼庫,它簡化了嚮應用添加實時 Web 功能的過程。 實時 Web 功能使伺服器端程式碼能夠即時將內容推送到客戶端。 SignalR 的適用對象: – 需要來自伺服器的高頻率更新的應用。 例如:遊戲、社交網路、投票、拍賣、地圖和 GPS 應用。 – 儀錶板和監視應用。 示例包括公司儀錶板、銷售狀態即時更新或行程警示。 – 協作應用。 協作應用的示例包括白板應用和團隊會議軟體。 – 需要通知的應用。 社交網路、電子郵件、聊天、遊戲、行程警示以及許多其他應用都使用通知。 SignalR 提供了一個用於創建伺服器到客戶端遠程過程調用(RPC)的 API。 RPC 通過伺服器端 .NET Core 程式碼調用客戶端上的 JavaScript 函數。 以下是 ASP.NET Core SignalR 的一些功能: – 自動管理連接。 – 同時向所有連接的客戶端發送消息。 例如,聊天室。 – 將消息發送到特定的客戶端或客戶端組。 – 擴展以處理增加的流量。 ## 業務需求 – 一個人可以開多個tab有多個連接 – 給指定的一個、一批人推送(以User為中心對該用戶的所有連接進行推送(瀏覽器多個tab)) – 給指定的組中某些人推送(群聊) – 給指定的人某些Connect推送(登錄排斥,不允許多台電同時腦登錄) ## 改進部分 – 優先使用socket進行通訊 – 支援一個用戶多個連接 – 使用MessagePack進行傳輸 – 使用Redis作為底板來支援橫向擴展 本系列共分為10篇,包括基礎知識介紹,項目實戰等,目錄如下 [.net core 3.0 Signalr – 01 基礎篇](/2019/09/21/dotnetcore/signalr/01-base/) [.net core 3.0 Signalr – 02 使用強類型的Hub](/2019/09/22/dotnetcore/signalr/02-type-hub/) [.net core 3.0 Signalr – 03 使用MessagePack壓縮傳輸內容](/2019/09/29/dotnetcore/signalr/03-message-pack/) [.net core 3.0 Signalr – 04 使用Redis做底板來支援橫向擴展](/2019/10/01/dotnetcore/signalr/04-redis/) [.net core 3.0 Signalr – 05 使用jwt將用戶跟signalr關聯](/2019/10/02/dotnetcore/signalr/05-jwt/) [.net core 3.0 Signalr – 06 業務實現-業務分析](/2019/10/03/dotnetcore/signalr/06-analysis/) [.net core 3.0 Signalr – 07 業務實現-服務端 自定義管理組、用戶、連接](/2019/10/04/dotnetcore/signalr/07-self-manager/) [.net core 3.0 Signalr – 08 業務實現-客戶端demo](/2019/10/05/dotnetcore/signalr/08-clientdemo/) [.net core 3.0 Signalr – 09 待改進&交流](/2019/10/05/dotnetcore/signalr/09-todo/) ## Demo源碼地址 > https://github.com/xiexingen/CTS.Signalr ## 強烈推薦的參考文檔 > 微軟官方文檔:https://docs.microsoft.com/zh-CN/aspnet/core/signalr/introduction?view=aspnetcore-3.0 > 發現寫的不錯的部落格: https://www.cnblogs.com/cgzl/p/9509207.html > 發現寫的不錯的部落格:https://www.cnblogs.com/cgzl/p/9515516.html ## 訂閱內容,請關注公眾號 ![二維碼](https://img2018.cnblogs.com/blog/394514/201910/394514-20191005204947833-979078412.jpg)