用途:在 ASP.NET Core 应用中实现或审查 SignalR 的 Hub、流式传输、重连、传输选择与实时投递模式,适用于聊天、通知、协作、实时更新,以及调试 Hub 生命周期、连接状态和传输问题,并判断 SignalR 与其他传输方式的取舍。
主要能力:推荐使用强类型 Hub(Hub<TClient>)在编译期校验客户端方法;用 Groups 做定向广播;用自定义对象参数实现向后兼容的 API 演进;支持 MessagePack 二进制协议、流缓冲、保活与超时配置;通过 IHubContext 从 Hub 外部发送消息;用 Redis 背板或 Azure SignalR Service 做多服务器扩展;客户端支持自动重连与重连后重新加入分组。
使用方式:服务端 builder.Services.AddSignalR(...) 注册并配置,app.MapHub<ChatHub>("/hubs/chat") 映射;认证可在 JWT 事件中从查询字符串读取 access_token 供 WebSocket 使用;客户端用 HubConnectionBuilder 的 withUrl 与 withAutomaticReconnect 构建,并在 onreconnected 中重新加入分组。
限制与注意:Hub 实例按方法调用创建,不应在 Hub 属性中存状态;不要直接实例化 Hub,应使用 IHubContext;必须 await 发送调用;重连不会恢复分组关系;大负载应走 REST/gRPC;多服务器需配置背板;避免直接暴露 ORM 实体,需校验所有入站消息。Native AOT 或裁剪场景需显式验证协议与序列化支持。具体版本与价格信息暂未提供。