【发布时间】:2019-01-02 19:59:33
【问题描述】:
我正在尝试实现 .NET Core 2.2/SignalR 1.1.0。
在启动中:
public void ConfigureServices(IServiceCollection services)
services.AddSignalR();
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
app.UseSignalR(routes =>
{
routes.MapHub<ChatHub>("/chatHub");
});
当我应用一对一的例子时,它工作得很好。
但我需要改变架构。
我的例子:
public class ChatHub : Hub
{
ResponseHandler ResponseHandler { get; set; }
public ChatHub()
{
IHubCallerClients hubCallerClients = this.Clients;
ResponseHandler = new ResponseHandler(hubCallerClients);
}
public async Task SendMessage(string user, string message)
{
IHubCallerClients hubCallerClients = this.Clients;
await ResponseHandler.R();
}
}
如果我试图在构造函数中获取 this.Clients,它会带有空数据。但是如果我尝试在方法中使用它,它会如预期的那样充满。
我应该在构造函数中获取 IHubCallerClients,以便我可以将其转发到另一个响应上下文。
提前感谢!
【问题讨论】:
-
您好,您能否提供有关您要解决的根本问题的更多信息? en.wikipedia.org/wiki/XY_problem 看起来您正在尝试解决“转发请求”,但您正在询问“如何在构造函数中获取 this.Clients?”。
标签: signalr .net-core-2.2