ASP.NET Core概觀 SignalR

什麼是 SignalR?

SignalRASP.NET Core是開放原始碼程式庫,可簡化將即時 Web 功能新增至應用程式。 即時 Web 功能可讓伺服器端程式碼立即將內容推送至用戶端。

適合的候選項目 SignalR :

  • 需要經常從伺服器取得更新的應用程式。 例如遊戲、社交網路、投票、拍賣、地圖和 GPS 應用程式。
  • 儀表板和監視應用程式。 範例包括公司儀表板、即時銷售更新或旅行警示。
  • 共同作業應用程式。 共同作業應用程式的範例包括白板應用程式和小組會議軟體。
  • 需要通知的應用程式。 社交網路、電子郵件、交談、遊戲、旅行警示和其他使用通知的應用程式。

SignalR 提供 API 來建立伺服器對用戶端 遠端程序呼叫, (RPC) 。 RPC 會從伺服器端 .NET Core 程式碼叫用用戶端上的函式。 有數個 支援的平臺,每個平臺都有各自的用戶端 SDK。 因此,RPC 呼叫所叫用的程式設計語言會有所不同。

以下是 ASP.NET Core 的 SignalR 一些功能:

  • 自動處理連線管理。
  • 同時將訊息傳送給所有連線的用戶端。 例如,聊天室。
  • 將訊息傳送給特定用戶端或用戶端群組。
  • 調整以處理增加的流量。

來源裝載于GitHub 上的存放 SignalR 庫中

傳輸

SignalR 支援下列技術來處理即時通訊 (,以正常後援) :

SignalR 會自動選擇伺服器和用戶端功能內的最佳傳輸方法。

中樞

SignalR 會使用 中樞 在用戶端和伺服器之間進行通訊。

中樞是高階管線,可讓用戶端和伺服器彼此呼叫方法。 SignalR 會自動處理跨機器界限分派,允許用戶端在伺服器上呼叫方法,反之亦然。 您可以將強型別參數傳遞至方法,以啟用模型系結。 SignalR 提供兩個內建中樞通訊協定:以 ON 為基礎的 JS 文字通訊協定,以及以 MessagePack為基礎的二進位通訊協定。 MessagePack 通常會建立比 ON 較小的訊息 JS 。 較舊的瀏覽器必須支援 XHR 層級 2 ,才能提供 MessagePack 通訊協定支援。

中樞會傳送包含用戶端方法名稱和參數的訊息來呼叫用戶端程式代碼。 以方法參數方式傳送的物件會使用已設定的通訊協定還原序列化。 用戶端會嘗試將名稱與用戶端程式代碼中的方法相符。 當用戶端找到相符專案時,它會呼叫 方法,並將其傳遞至還原序列化參數資料。

其他資源