如何在控制器中访问信号R集线器自定义方法

时间:2018-07-12 04:57:21

标签: asp.net-core-mvc asp.net-core-2.0 signalr-hub

我已经用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,但我也没有发现。 我错过了什么吗? 请给我提示。

谢谢

0 个答案:

没有答案