什麼是 SignalR 以及如何使用它?


在典型的 Web 應用程式中,通訊流程是單向的,即從客戶端到伺服器。客戶端向伺服器發起請求,伺服器執行某些任務,並將響應傳送回客戶端。

SignalR 是一個開源專案,它允許伺服器與客戶端之間進行即時、雙向的 Web 通訊。使用 SignalR,您可以編寫能夠立即與客戶端通訊的伺服器端程式碼。

SignalR 簡化了向 Web 應用程式新增即時 Web 功能的過程,伺服器程式碼可以在可用時立即將內容推送到連線的客戶端。這使客戶端無需反覆輪詢伺服器,並且伺服器無需等待客戶端請求新資料。

SignalR 提供了一個 API,用於建立伺服器到客戶端的遠端過程呼叫 (RPC),這些呼叫從伺服器端 .NET 程式碼呼叫客戶端瀏覽器(和其他客戶端平臺)中的 JavaScript 程式碼。SignalR 還包括一個用於連線管理(例如,連線和斷開連線事件)和分組連線的 API。

SignalR 可用於向您的 ASP.NET 應用程式新增任何型別的“即時”Web 功能。任何時候使用者重新整理網頁以檢視新資料,或者頁面實現長輪詢以檢索新資料,都是使用 SignalR 的候選者。

SignalR 提供一個應用程式程式設計介面 (API),您可以使用它來建立伺服器到客戶端的遠端過程呼叫 (RPC)。這些 RPC 允許伺服器端 C# 程式碼呼叫客戶端上的 JavaScript 函式。

SignalR 使用多種技術

SignalR 使用多種技術來處理伺服器到客戶端的即時通訊,例如:

  • WebSockets

  • 伺服器傳送事件 (Server-Sent Events)

  • 長輪詢 (Long Polling)

它會根據伺服器和客戶端的功能自動選擇最佳傳輸方法。

SignalR 的應用

雖然聊天是 SignalR 的常用示例,但您可以做的遠不止這些。以下是 SignalR 的一些優秀應用。

  • 使用者通知

  • 向客戶端傳送高頻更新

  • 包含即時圖表和圖形的儀表板

  • 協作應用程式,例如聊天和訊息服務

  • 遊戲和娛樂應用程式

  • 警報機制

更新於:2021年6月22日

3K+ 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.