在ASP.NET Core SignalR应用程序中,可能需要使用多个Hub实例,但默认情况下只能使用一个Hub实例。可以参考以下步骤解决此问题:
public class MyHub2 : Hub { public async Task SendMessage(string user, string message) { await Clients.All.SendAsync("ReceiveMessage", user, message); } }
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
services.AddSingleton
public class HomeController : Controller { private readonly MyHub2 _hubContext;
public HomeController(MyHub2 hubContext)
{
_hubContext = hubContext;
}
public IActionResult Index()
{
// 使用新的Hub实例
_hubContext.SendMessage("user", "message");
return View();
}
}
通过这些步骤,可以在ASP.NET Core SignalR应用程序中使用多个Hub实例。