SignalR Core с Angular: не удалось подключиться.Ошибка: ошибка во время запроса согласования - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь использовать 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)
   });
}

1 Ответ

0 голосов
/ 02 февраля 2019

В вашем примере кода есть как минимум две ошибки.Кажется, вы хотите использовать концентратор чата, но у вас нет пути к нему.Во-вторых, клиент хочет использовать порт 49319, но показанный запрос использует порт 54015. Я бы сказал, проверьте вашу конфигурацию немного больше.

...