sách gpt4 ăn đã đi

c# - 从另一个对象中获取 SignalR Core 中的 Hub 上下文

In lại 作者:太空狗 更新时间:2023-10-29 20:12:32 25 4
mua khóa gpt4 giày nike

tôi đang sử dụng Microsoft.AspNetCore.SignalR (最新版本)并希望从另一个不是 Bộ điều khiển 的对象中获取集线器上下文.在“完整”SignalR 中,我可以使用 GlobalHost.ConnectionManager.GetHubContext();

我见过很多只加Microsoft.AspNetCore.SignalR.IHubContext的例子作为 Bộ điều khiển 的 Ctor 的参数,但没有其他示例(有效)。

预计到达时间:

所以,这就是我的工作。这是 hacky 吗?

public class MyHub : Hub
public static IHubContext GlobalContext { get; private set; }
public MyHub(IHubContext ctx){
GlobalContext = ctx;
}
}

那么我可以这样调用它:

await MyHub.GlobalContext.Clients.All.InvokeAsync(...)

câu trả lời hay nhất

Chỉ cần đặtIHubContext hubContext在调用方构造函数上。

我建议使用 .net 核心默认 DI 容器机制,而不是创建静态属性。

Xin vui lòng trích dẫnHow do I get a reference to a Hub?

public class MyHub : Hub
{
}

public class CallingSideClass
{
private readonly IHubContext _hubContext;

public CallingSideClass(IHubContext hubContext)
{
_hubContext = hubContext;
}

public async Task FooMethod(...)
{
await _hubContext.Clients.All.InvokeAsync(...);
}
}

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

关于c# - 从另一个对象中获取 SignalR Core 中的 Hub 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48393429/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress