什麼是 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 的一些優秀應用。
使用者通知
向客戶端傳送高頻更新
包含即時圖表和圖形的儀表板
協作應用程式,例如聊天和訊息服務
遊戲和娛樂應用程式
警報機制
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP