.net core 3.0 Signalr - 實現一個業務推送系統
阿新 • • 發佈:2019-10-05
## 介紹
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-979078