IRONSOFTWAREHOME
开发者更新

Signalr C#(开发者如何使用)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 2026年4月21日

现代网络依赖于互动性和实时反馈。 在构建响应式应用程序时,实时网络功能是必不可少的。这就是SignalR的发光点。 ASP.NET Core SignalR 是一个库,可以让您的应用程序更容易地添加实时网络功能,比您想象的要简单。

在本教程中,我们将开启一段SignalR基础知识和细微差别的旅程。 让我们深入了解!

ASP.NET Core中的SignalR介绍

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;
using System.Threading.Tasks;

// Define a SignalR Hub class named ChatHub
public class ChatHub : Hub
{
    // Asynchronous method to send messages
    public async Task SendMessage(string user, string message)
    {
        // Send a message to all connected clients
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}

Startup类中,让我们集成我们的集线器。

public class Startup
{
    // Configure services and add SignalR
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSignalR(); // Add SignalR services
    }

    // Configure the app to use SignalR and map the hub
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // Setup endpoint to route to ChatHub
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapHub<ChatHub>("/chatHub");
        });
    }
}

客户端实现

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>
HTML

现在,您可以连接到hub:

// Create a connection to the SignalR hub
const connection = new signalR.HubConnectionBuilder()
    .withUrl("/chatHub") // The hub URL
    .build();

// Start the connection
connection.start().catch(err => console.error(err.toString()));

// Setup a listener for receiving messages
connection.on("ReceiveMessage", (user, message) => {
    console.log(`${user} says: ${message}`);
});
JavaScript

这个简单的客户端代码连接到hub并监听任何广播的消息。

实时功能的实际运用

发送消息

使用我们之前的客户端和服务器端代码片段,发送消息很简单。 服务器和客户端都可以发起通信。

从服务器端:

// Send a message from the server to all connected clients
await Clients.All.SendAsync("ReceiveMessage", "Server", "Hello from server!");

从客户端:

// Send a message from the client to the server
connection.send("SendMessage", "Client", "Hello from client!")
    .catch(err => console.error(err.toString()));
JavaScript

高级实时通信

ASP.NET Core SignalR提供高级实时通信功能:

1.**连接分组:**将连接的客户端分成组,向特定组广播消息。 2.**处理断开连接:**自动管理客户端连接和断开连接。 3.**二进制协议:**虽然 SignalR 默认使用基于文本的协议,但它也支持二进制协议。

SignalR与Azure SignalR服务

为了实现可扩展的实时功能,集成Azure SignalR服务。 这个完全托管的服务支持大量同时连接,适合高需求应用程序。

集成Azure SignalR服务:

  1. 安装Azure SignalR SDK
  2. 使用Azure Service Bus进行后台平面支持。
  3. 调整Startup类以使用Azure SignalR。
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // Add Azure SignalR services
        services.AddSignalR().AddAzureSignalR();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // Use Azure SignalR and map hub with routes
        app.UseAzureSignalR(routes =>
        {
            routes.MapHub<ChatHub>("/chatHub");
        });
    }
}

Iron Suite通过高级.NET工具增强SignalR

虽然ASP.NET Core SignalR为实时网络功能提供了卓越的基础,但开发人员通常希望使用工具来增强整体体验和功能。 这就是Iron Software套件库的作用。

Iron Suite是一套高级.NET库,旨在增强您的ASP.NET Core应用程序,包括那些使用SignalR的应用程序。 此套件中的每个产品都提供独特的功能,确保更丰富的应用体验。 让我们深入探讨这些产品:

IronPDF

Signalr C#(开发者如何使用)图1

了解更多关于IronPDF的功能,可让您在.NET应用程序中生成、编辑和读取PDF文件。 想象一下,在一个团队实时协作文档的场景中集成SignalR。当发生更改时,文档可以实时转换为PDF,并将更新无缝推送到所有连接的客户端。 SignalR的实时功能与IronPDF的功能相结合,可以彻底改变协作工具。

IronPDF将HTML、URL和完整网页转换为原始水平的精美PDF。 这非常适合保存在线报告、发票或您想保留的任何基于网页的信息。您是否想将HTML转换为PDF? 立即试用IronPDF!

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

了解更多关于 IronXL 是一个 Excel 库,可帮助处理 Excel 文件而无需安装 Excel。

Signalr C#(开发者如何使用)图2

谈到处理Excel电子表格时,探索IronXL功能是一个佼佼者。 在商业环境中,电子表格扮演着重要角色。 将SignalR与IronXL结合意味着财务团队能够实时处理预算表,目睹变化的发生。 想象一个场景,来自不同部门的数据条目流入一个集中的Excel表格,所有利益相关者都可以实时更新。 实时通信和动态电子表格管理的结合成为现实。

IronOCR

Signalr C#(开发者如何使用)图3

光学字符识别(OCR)已成为现代应用程序的核心。 观看IronOCR的演示让.NET开发人员能够从图像和文档中提取文本。 结合SignalR的实时功能可以改变游戏规则。 考虑一个平台,用户上传包含文本数据的图像。 SignalR可以用于在IronOCR处理图像后实时通知用户,使得数据提取变得互动且即时。

开始使用 IronBarcode 是一个专为 .NET Framework设计的条码读取和写入库。

Signalr C#(开发者如何使用)图4

条形码在库存管理、票务系统等中不可或缺。 发现IronBarcode功能简化了条形码的创建和读取。 现在,想象在仓库管理系统中与SignalR集成。 当物品被扫描时,库存实时更新,通知连接的客户机库存水平,确保顺畅的物流操作。

结论

Signalr C#(开发者如何使用)图5

ASP.NET Core SignalR与Iron Suite强大工具的结合为开发人员和最终用户提供了一种提升的体验。 实时网络功能不仅仅是关于通信,而是当与像Iron Suite这样恰当的资源结合时,可以重新定义互动应用程序的变革性工具。

值得注意的是Iron Suite提供的价值主张。每个产品许可证从$999起,为开发者提供了高级的功能集。 然而,如果您不确定是否立即购买,每个产品都慷慨地提供了Iron Software产品的免费试用。 这使您可以在做出决定之前试驾这些功能。

此外,如果您考虑整合多个工具,绝佳消息是您可以购买整个Iron Suite以获得更多价值,价格只相当于两个产品! 这不仅确保您获得最大的收益,还为您提供一个全面的工具包,以革新您的ASP.NET Core SignalR应用程序。

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor is Chief Technology Officer at Iron Software and a visionary engineer pioneering C# PDF technology. As the original developer behind Iron Software's core codebase, he has shaped the company's product architecture since its inception, transforming it alongside CEO Cameron Rimington into a 50+ person company serving NASA, Tesla, and global government agencies.

...
Read More

Related Articles

Key in blue circle

立即获取免费的 30 天试用版密钥

bullet_checked无需信用卡或创建账户
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge related to IronPDF Product Demo

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户