介紹
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 基礎篇
.net core 3.0 Signalr - 02 使用強類型的Hub
.net core 3.0 Signalr - 03 使用MessagePack壓縮傳輸內容
.net core 3.0 Signalr - 04 使用Redis做底板來支持橫向擴展
.net core 3.0 Signalr - 05 使用jwt將用戶跟signalr關聯
.net core 3.0 Signalr - 06 業務實現-業務分析
.net core 3.0 Signalr - 07 業務實現-服務端 自定義管理組、用戶、連接
.net core 3.0 Signalr - 08 業務實現-客戶端demo
.net core 3.0 Signalr - 09 待改進&交流
Demo源碼地址
強烈推薦的參考文檔
微軟官方文檔: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