0

0

Blazor 怎么集成 SignalR

煙雲

煙雲

发布时间:2025-12-13 18:54:08

|

864人浏览过

|

来源于php中文网

原创

Blazor集成SignalR分三步:服务端定义Hub并注册、客户端安装包并建立连接、收发消息;推荐WASM模式以节省服务器资源;需注意路径大小写、CORS配置及开发期错误设置。

blazor 怎么集成 signalr

Blazor 集成 SignalR 主要分服务端 Hub 定义、客户端连接、消息收发三步,WebAssembly(WASM)和 Server 两种模式逻辑一致,但推荐用 WASM 模式——避免服务器端重复连接消耗资源。

服务端:定义 Hub 并注册

在 ASP.NET Core 后端项目中新建一个继承 Hub 的类,比如 ChatHub

  • 方法用 public async Task 声明,可被客户端调用
  • Clients.All.SendAsyncClients.Client(connectionId).SendAsync 推送消息
  • Program.cs 中注册 SignalR 服务和 Hub 端点:
builder.Services.AddSignalR().AddMessagePackProtocol();
app.MapHub("/chatHub");

客户端:安装包并建立连接

在 Blazor WebAssembly 项目中,先安装 NuGet 包:

  • Microsoft.AspNetCore.SignalR.Client
  • 如需高性能序列化,加装 Microsoft.AspNetCore.SignalR.Protocols.MessagePack

在组件或服务中创建连接:

Copy.ai
Copy.ai

Copy.ai 是一个人工智能驱动的文案生成器

下载
private HubConnection hubConnection;
hubConnection = new HubConnectionBuilder()
.WithUrl(navigationManager.ToAbsoluteUri("/chatHub"))
.Build();
await hubConnection.StartAsync();

收发消息:绑定事件 + 调用方法

连接建立后,就能双向通信了:

  • hubConnection.On("MethodName", handler) 监听服务器推送,例如:On("ReceiveMessage", msg => { messages.Add(msg); StateHasChanged(); })
  • hubConnection.InvokeAsync("MethodName", args...) 调用服务器方法,参数类型和顺序必须严格匹配
  • 建议在 OnInitializedAsync 中启动连接,在 DisposeAsync 中显式停止并释放连接

常见注意点

几个容易出错的地方:

  • URL 必须和服务端 MapHub 的路径完全一致(含大小写),且不能漏掉前导斜杠
  • 服务器启用 EnableDetailedErrors = true 仅用于开发,上线前关闭
  • WASM 客户端不支持依赖注入 HubConnectionBuilder 到组件属性,应通过服务封装或手动构建
  • 跨域请求需在服务端配置 CORS,允许前端域名
基本上就这些。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

318

2023.08.02

vsd文件打开方法
vsd文件打开方法

vsd文件打开方法有使用Microsoft Visio软件、使用Microsoft Visio查看器、转换为其他格式等。想了解更多vsd文件相关内容,可以阅读本专题下面的文章。

480

2023.10.30

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

82

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

24

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

56

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 8.8万人学习

CSS3 教程
CSS3 教程

共18课时 | 4.6万人学习

Vue 教程
Vue 教程

共42课时 | 6.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号