Я пытаюсь использовать signalR для соединения API ASP.NET Core с Angular 5, он отлично работает в ASP.NET MVC 5, но при перемещении моего кода в ASP.NET Core выдает эту ошибку
http://localhost:54015/signalr/negotiate?clientProtocol=1.5&connectionData=.. net :: ERR_ABORTED 404 (не найдено)
Не удалось подключиться Не удалось подключиться.Ошибка: ошибка во время запроса согласования.
// Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
services.AddCors();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//...
app.UseCors(options => options.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin());
app.UseSignalR((options) => {
options.MapHub<ValuesHub>("/Hubs/Values");
});
//app.UseHttpsRedirection();
app.UseMvc();
}
// NotificationHub.cs
public class NotificationHub: Hub
{
public Task Send(string message)
{
return Clients.All.SendAsync("Send", message);
}
}
// Угловой //app.module.ts
import { SignalRModule } from 'ng2-signalr';
import { SignalRConfiguration } from 'ng2-signalr';
export function createConfig(): SignalRConfiguration {
const c = new SignalRConfiguration();
c.hubName = 'Chat';
c.url = 'http://localhost:49319';
return c;
}
// app.component.ts
import { SignalR, BroadcastEventListener } from 'ng2-signalr';
onMessageSent$ = new BroadcastEventListener<string>('Send');
constructor(private _signalR: SignalR) {
}
ngOnInit() {
this._signalR.connect().then((c) => {
console.log("success", c)
c.listen(this.onMessageSent$);
//do stuff
})
.catch(
(error) => {
console.log("error", error)
});
this.onMessageSent$.subscribe((msg: string) => {
console.log("msg", msg)
});
}