如何在Blazor页面中获取SignalR电路ID?
获取Blazor页面的SignalR电路ID(无需自定义Hub)
不需要手动创建Hub类,Blazor内置的SignalR通信机制已经提供了获取电路ID的便捷方式,你可以通过注入CircuitAccessor来直接获取:
注入CircuitAccessor服务
在Blazor组件(.razor文件)中,通过依赖注入引入CircuitAccessor:@inject Microsoft.AspNetCore.Components.Server.Circuits.CircuitAccessor CircuitAccessor获取电路ID
在组件的代码逻辑中,通过CircuitAccessor.Circuit?.Id获取当前的SignalR电路ID:@code { private string? CircuitId { get; set; } protected override void OnInitialized() { CircuitId = CircuitAccessor.Circuit?.Id; } }
补充说明
CircuitAccessor是Blazor Server内置的服务,专门用于访问当前客户端的电路信息,无需额外配置。- 电路ID在客户端与服务器建立SignalR连接时生成,只要连接保持有效,这个ID就会保持不变;当连接断开重连时,会生成新的电路ID。
内容的提问来源于stack exchange,提问作者hamstar
相关产品推荐
相关产品推荐

