我已经用asp.net Core 2.0在信号R Hub中创建了一个自定义方法,并尝试从控制器访问它,但是我做不到。我所做的是 集线器代码:-
public class NotifyHub : Hub
{
public Task SendChatMessage(string who, string message)
{
return Clients.All.SendAsync("Send", "test");
}
}
Startup.cs
services.AddSignalR();
和
app.UseSignalR(routes =>
{
routes.MapHub<NotifyHub>("/chat");
});
控制器:-
public class AccountController : Controller
{
private readonly IHubContext<NotifyHub> _hubContext;
public AccountController(IHubContext<NotifyHub> hubContext)
{
_hubContext = hubContext;
}
[HttpPost]
public string Post([FromBody]Message msg)
{
string retMessage = string.Empty;
try
{
object result = new { message = msg.Payload , who = msg.Type};
_hubContext. <-- Here i want that sendChatMessage method.
}
catch (Exception e)
{
retMessage = e.ToString();
}
return retMessage;
}
}
现在我无法访问该方法。我已经尝试找到解决方案,但没有找到。更重要的是,我注意到有很多人说使用globalhost,但我也没有发现。 我错过了什么吗? 请给我提示。
谢谢