SignalR sin transporte

Intentando iniciar el centro de signal-r informa "Error: no se encontraron transportes disponibles".

Sin embargo, una captura de diagnóstico muestra que la negociación vuelveTres Transportes disponibles.

{
    "connectionId": "IsHpe_1ETRLz-flnJ3uKPg",
    "availableTransports": [
        {
            "transport": "WebSockets",
            "transferFormats": [
                "Text",
                "Binary"
            ]
        },
        {
            "transport": "ServerSentEvents",
            "transferFormats": [
                "Text"
            ]
        },
        {
            "transport": "LongPolling",
            "transferFormats": [
                "Text",
                "Binary"
            ]
        }
    ]
}

Esto se hace con aspnetcore 2.1 preview2 y el inicio se ve así

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors(options => options.AddPolicy("AllowAny", x =>
          x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin()));
        services.AddSignalR();
        services.AddOptions();
        services.Configure<AppSettings>(Configuration);
        var connectionStrings = Configuration.GetSection("ConnectionStrings");
        var defaultConnectionString = connectionStrings[Configuration["DefaultConnectionString"]];
        services.AddDbContext<au1.Model.ProwlerDbContext>(options => 
          options.UseSqlServer(defaultConnectionString));
        services.AddMvc();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseCors("AllowAny");
        app.UseSignalR(routes =>
        {
            routes.MapHub<MessageHub>("/message");
        });
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
            {
                HotModuleReplacement = true
            });
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseStaticFiles();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");

            routes.MapSpaFallbackRoute(
                name: "spa-fallback",
                defaults: new { controller = "Home", action = "Index" });
        });
    }

Obviamente, la ruta funciona, o la negociación no aparecería en el tráfico de la red. Invocandohttp: // local: 5000 / mensaje con un navegador produce un mensajeConnection ID required como se esperaba.

¿He dejado un paso afuera?

Del lado del cliente, así es como he intentado conectarme.

    this.signalr = new SignalR.HubConnection("http://localhost:5000/message");
    this.signalr.on("stateChange", (data: string) => {
        console.log(`SignalR: ${data}`);
        that.selection = data;
    });
    this.signalr.start().then(result=>{
        console.log("hub started");
    }).catch(err=>{
        console.log("hub failed to start");
    });

package.json dice"_id": "@aspnet/[email protected]",

El .csproj dice<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.0.0-preview2-final" />

Estos no son lo mismo. Si son compatibles no podría decirlo.

No sé cómo se desincronizaron, ya que omití la versión para obtener lo último de cada uno. Una actualización de npm llevó al cliente a preview2 y ahora volveré a probar.

Respuestas a la pregunta(1)

Su respuesta a la pregunta