Angular 7 和 ASP.Net MVC 中的 SignalR

SignalR in Angular 7 and ASP.Net MVC

我想在我的 angular 应用程序中使用 SignalR 2 作为客户端,并使用 ASP.Net MVC 作为后端。
我安装了 Microsoft.AspNet.SignalRMicrosoft.Owin 并像这样添加 startup.csChatHub.cs

startup.cs

[assembly: OwinStartup(typeof(MyMvcApp.Startup))]
namespace MyMvcApp
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }
}


ChatHub.cs

namespace MyMvcApp.Hubs
{
    public class ChatHub : Hub
    {
        public void Send(string user, string message)
        {
            Clients.All.SendMessage(message);
        }
    }
}


在我的 angular 应用程序中,我安装了 signalr npm 并在 angular.json:

中包含了 signalr
"scripts": [
   "node_modules/signalr/jquery.signalR.js"
]


并用于 SignalRService:

start() {
    $.connection('http://localhost/hubs').start();
}

但我在浏览器控制台中收到此错误:http://localhost/hubs/negotiate?clientProtocol=2.1&_=1557811289416
我该如何解决这个问题?

如果使用 "jsonp: true",请检查您的代码。如果是,则检查它是否在集线器配置上启用。 请按照以下link.

https://www.roelvanlisdonk.nl/2013/09/10/asp-net-signalr-self-hosting-fixing-the-error-xmlhttprequest-cannot-load-httplocalhost8080signalrnegotiate-origin-httplocalhost52947-is-not-allowed-by-access-control-allow-origin/

我用错了url。我的错 !!! 我不得不使用 $.connection('http://localhost/signalr').start(); 而不是 $.connection('http://localhost/hubs').start();