Ядро ASP, Angular with signalR Ошибка при рукопожатии WebSocket: Неожиданный код ответа: 400 - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь использовать SignalR с asp core 2.1 и angular 7. Но всякий раз, когда я пытаюсь его запустить, в консоли браузера выдается ошибка: error

Я просто следовал основам, чтобы реализоватьПример ChatHub и попытался изменить его, но без исправления, и когда я искал ту же ошибку, я не нашел ничего, чтобы решить ее, так как каждое решение не работает для меня.

C # код в asp core

public void ConfigureServices(IServiceCollection services)
        {
            // rest of the code
            /////////////////////////
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                    builder => builder.AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                        .AllowCredentials()
                        .Build());
            });

            services.AddSignalR(hubOptions =>
            {
                hubOptions.EnableDetailedErrors = true;
                hubOptions.KeepAliveInterval = TimeSpan.FromMinutes(1);
            });
        }

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            // rest of the code
            /////////////////////////
            app.UseCors(builder =>
                builder.WithOrigins("https://localhost:44365", "https://localhost:5001", "http://localhost:4200", "http://localhost:5000").AllowAnyHeader().AllowAnyMethod().AllowCredentials());


            app.UseSignalR(route =>
            {
                route.MapHub<ChatHub>("/chathub");
            });
        }

public class ChatHub : Hub
    {
        public async Task SendMessage(string user, string message)
        {
            await Clients.All.SendAsync("ReceiveMessage", user, message);
        }
    }

Машинописный код в угловой службе

sendChatMessage(message: String) {
        this._hubConnection.invoke('SendMessage', message);
    }

    private createConnection() {
        this._hubConnection = new HubConnectionBuilder()
            .withUrl('chathub',
                {
                    skipNegotiation: true,
                    transport: signalR.HttpTransportType.WebSockets
                })
            .configureLogging(signalR.LogLevel.Information)
            .build();
    }

    private startConnection(){
        this._hubConnection
            .start()
            .then(() => {
                this.connectionIsEstablished = true;
                console.log('Hub connection started');
                this.connectionEstablished.emit(true);
            })
            .catch(err => {
                console.log('Error while establishing connection ',err);
            });
    }
...