.NET 幫助

SignalR C#(這對開發人員如何運作)

發佈 2023年11月14日
分享:

現代網絡仰賴互動性和即時反饋。在構建響應式應用程式時,即時網絡功能是必須的。這就是SignalR大放異彩的地方。 ASP.NET Core SignalR 是一個讓您更簡單地為應用程式添加實時網路功能的程式庫。

在本教程中,我們將開始了解SignalR的基本概念和細節。讓我們開始吧!

SignalR 在 ASP.NET Core 中的介紹

ASP.NET Core SignalR 提供一個用於創建實時網路功能的 API,使用 WebSockets 和其他技術,如伺服器發送事件。它不限於 ASP.NET Core。您可以將 SignalR 與各種客戶端一起使用,例如瀏覽器或移動應用程式,確保連接的客戶端能夠即時更新。

設置您的開發環境

要開始,您需要:

架設 SignalR Hub

SignalR 的核心是 SignalR hub,這是一個讓客戶端和伺服器端互動的中心節點。

建立一個新的 ASP.NET Core 專案。現在,新增一個類別並將其命名為 ChatHub。這將作為我們的 SignalR hub。

using Microsoft.AspNetCore.SignalR;

public class ChatHub : Hub
{
    public async Task SendMessage(string user, string message)
    {
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}
using Microsoft.AspNetCore.SignalR;

public class ChatHub : Hub
{
    public async Task SendMessage(string user, string message)
    {
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}
Imports Microsoft.AspNetCore.SignalR

Public Class ChatHub
	Inherits Hub

	Public Async Function SendMessage(ByVal user As String, ByVal message As String) As Task
		Await Clients.All.SendAsync("ReceiveMessage", user, message)
	End Function
End Class
VB   C#

在公開類別 Startup 中,我們來整合我們的中心。

public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapHub<ChatHub>("/chatHub");
    });
}
public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapHub<ChatHub>("/chatHub");
    });
}
Public Sub ConfigureServices(ByVal services As IServiceCollection)
	services.AddSignalR()
End Sub

Public Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment)
	app.UseEndpoints(Sub(endpoints)
		endpoints.MapHub(Of ChatHub)("/chatHub")
	End Sub)
End Sub
VB   C#

客戶端實作

SignalR 功能多樣。儘管本教程主要集中在 ASP.NET Core 和 JavaScript 客戶端庫 上,SignalR 支援各種客戶端,從 .NET 到 Java。

使用 SignalR 用戶端程式庫

SignalR 用戶端程式庫允許您的客戶端代碼直接連接並與伺服器端進行通信。以下是使用 JavaScript 的範例。

首先,添加 SignalR JavaScript 用戶端程式庫:

<script src="https://cdn.jsdelivr.net/npm/@microsoft/signalr@3.1.8/dist/browser/signalr.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@microsoft/signalr@3.1.8/dist/browser/signalr.js"></script>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<script src="https://cdn.jsdelivr.net/npm/@microsoft/signalr@3.1.8/dist/browser/signalr.js"></script>
VB   C#

現在,您可以連接到中心:

const connection = new signalR.HubConnectionBuilder()
    .withUrl("/chatHub")
    .build();

connection.start();

connection.on("ReceiveMessage", (user, message) => {
    console.log(`${user} says: ${message}`);
});
const connection = new signalR.HubConnectionBuilder()
    .withUrl("/chatHub")
    .build();

connection.start();

connection.on("ReceiveMessage", (user, message) => {
    console.log(`${user} says: ${message}`);
});
const connection = (New signalR.HubConnectionBuilder()).withUrl("/chatHub").build()

connection.start()

connection.on("ReceiveMessage", Sub(user, message)
	console.log(`${user} says:= ${message}`)
End Sub)
VB   C#

這個簡單的客戶端程式碼連接到集線器並監聽任何廣播的消息。

即時功能運作中

傳送訊息

使用我們之前的客戶端和伺服器端代碼片段,傳送訊息是很簡單的。伺服器和客戶端都可以啟動通信。

從伺服器端:

await Clients.All.SendAsync("ReceiveMessage", "Server", "Hello from server!");
await Clients.All.SendAsync("ReceiveMessage", "Server", "Hello from server!");
Await Clients.All.SendAsync("ReceiveMessage", "Server", "Hello from server!")
VB   C#

來自客戶:

connection.send("SendMessage", "Client", "Hello from client!");
connection.send("SendMessage", "Client", "Hello from client!");
connection.send("SendMessage", "Client", "Hello from client!")
VB   C#

先進的即時通訊

ASP.NET Core SignalR 提供先進的即時通訊功能:

  1. 分組連接:將連接的客戶端分成組,向特定段廣播消息。
  2. 處理斷開連接:自動管理客戶端連接和斷開連接。
  3. 二進制協議:雖然 SignalR 默認使用基於文本的協議,但也支持二進制協議。

使用 Azure SignalR 服務的 SignalR

為了實現可擴展的即時功能,整合 Azure SignalR 服務此完全受管理的服務支持大量的同時連接,適用於高需求應用程式。

整合 Azure SignalR 服務:

  1. 安裝 Azure SignalR SDK.

  2. 使用 Azure Service Bus 作為後端支援。

  3. 調整公共類 Startup 使用 Azure SignalR。
public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR().AddAzureSignalR();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseAzureSignalR(routes =>
    {
        routes.MapHub<ChatHub>("/chatHub");
    });
}
public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR().AddAzureSignalR();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseAzureSignalR(routes =>
    {
        routes.MapHub<ChatHub>("/chatHub");
    });
}
Public Sub ConfigureServices(ByVal services As IServiceCollection)
	services.AddSignalR().AddAzureSignalR()
End Sub

Public Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment)
	app.UseAzureSignalR(Sub(routes)
		routes.MapHub(Of ChatHub)("/chatHub")
	End Sub)
End Sub
VB   C#

Iron Suite 提升 SignalR 的高級 .NET 工具

雖然 ASP.NET Core SignalR 提供了卓越的即時 web 功能基礎,但開發人員常常尋找工具來提升整體體驗和功能。而這正是 Iron Suite 登場的時候。 Iron Suite 登場了。

Iron Suite 是一套高級的 .NET 庫,專為提升您的 ASP.NET Core 應用程序而設計,包括那些使用 SignalR 的應用程序。這套產品中的每個產品都提供了獨特的功能,確保提供更豐富的應用體驗。讓我們深入了解這些產品:

IronPDF

SignalR C#(它如何為開發人員工作)圖 1

IronPDF 讓您在 .NET 應用程式中生成、編輯和讀取 PDF 文件。想像一個場景,團隊在實時協作一個文檔時集成 SignalR。隨著修改的進行,文檔可以即時轉換為 PDF,並將更新無縫地推送到所有連接的客戶端。SignalR 的實時功能與 IronPDF 的功能結合在一起,可能會徹底改變協作工具。

IronXL

Signalr C#(對開發人員的工作原理)圖2

當涉及到處理 Excel 試算表時, IronXL 是一個冠軍。在商業環境中,試算表扮演著至關重要的角色。將SignalR與IronXL結合起來,財務團隊就可以在預算表上實時工作,並即時看到變動。在這樣一個情境下,各部門的數據輸入流入集中式的Excel表單,所有利益相關者都能看到實時更新。這種實時通信和動態試算表管理的結合將成為現實。

IronOCR

Signalr C#(它如何對開發人員運作)圖3

光學字符識別 (光學字符識別) 已成為現代應用程序的支柱。 IronOCR 賦予 .NET 開發人員從圖像和文件中提取文本的能力。將其與 SignalR 的實時功能配對可能會改變遊戲。想像一個平台,使用者上傳包含文本數據的圖像。一旦 IronOCR 處理圖像,SignalR 可以用來實時通知使用者,使數據提取變得互動且即時。

IronBarcode

Signalr C#(它對開發者的工作原理)圖4

條碼在庫存管理、票務系統及其他方面是不可或缺的。 IronBarcode 簡化了條碼的創建和讀取。現在,想像將其與SignalR集成到倉庫管理系統中。當物品被掃描時,庫存會即時更新,通知連接的客戶端庫存水平,確保物流操作順利進行。

結論

Signalr C#(對開發人員的運作方式)圖 5

ASP.NET Core SignalR與Iron Suite強大工具的融合,為開發人員和終端使用者帶來提升的體驗。實時網頁功能不僅僅是關於通信,而是一種變革性的工具,當與如Iron Suite這樣的資源配對時,可以重新定義互動應用程序。

值得注意的是Iron Suite所提供的價值主張。每個產品許可證從 $749 開始,為開發人員提供一整套高級功能。然而,如果你對立即承諾猶豫,每個產品都有慷慨提供的試用版。 免費試用. 這讓您可以在做決定之前試用功能。

而且,如果您考慮整合多個工具,有一個好消息:您可以 購買整個Iron Suite 只需兩個產品的價格! 這不僅確保您獲得最高的性價比,還為您提供全面的工具包,以革新您的ASP.NET Core SignalR應用程式。

< 上一頁
C# 真 假(開發者如何運作)
下一個 >
C# SQLite(開發者如何使用)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >