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

介紹

ASP.NET Core SignalR 是一個開源代碼庫,它簡化了嚮應用添加實時 Web 功能的過程。 實時 Web 功能使服務器端代碼可以即時將內容推送到客戶端。
SignalR 的適用對象:html

  • 須要來自服務器的高頻率更新的應用。 例如:遊戲、社交網絡、投票、拍賣、地圖和 GPS 應用。
  • 儀表板和監視應用。 示例包括公司儀表板、銷售狀態即時更新或行程警示。
  • 協做應用。 協做應用的示例包括白板應用和團隊會議軟件。
  • 須要通知的應用。 社交網絡、電子郵件、聊天、遊戲、行程警示以及許多其餘應用都使用通知。

SignalR 提供了一個用於建立服務器到客戶端遠程過程調用(RPC)的 API。 RPC 經過服務器端 .NET Core 代碼調用客戶端上的 JavaScript 函數。
如下是 ASP.NET Core SignalR 的一些功能:git

  • 自動管理鏈接。
  • 同時向全部鏈接的客戶端發送消息。 例如,聊天室。
  • 將消息發送到特定的客戶端或客戶端組。
  • 擴展以處理增長的流量。

業務需求

  • 一我的能夠開多個tab有多個鏈接
  • 給指定的一個、一批人推送(以User爲中心對該用戶的全部鏈接進行推送(瀏覽器多個tab))
  • 給指定的組中某些人推送(羣聊)
  • 給指定的人某些Connect推送(登陸排斥,不容許多臺電同時腦登陸)

改進部分

  • 優先使用socket進行通訊
  • 支持一個用戶多個鏈接
  • 使用MessagePack進行傳輸
  • 使用Redis做爲底板來支持橫向擴展

本系列共分爲10篇,包括基礎知識介紹,項目實戰等,目錄以下github

.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 待改進&交流redis

Demo源碼地址

https://github.com/xiexingen/...

強烈推薦的參考文檔

微軟官方文檔: https://docs.microsoft.com/zh...
發現寫的不錯的博客: https://www.cnblogs.com/cgzl/...
發現寫的不錯的博客: https://www.cnblogs.com/cgzl/...

二維碼

相關文章
相關標籤/搜索