SignalR Core无法从JS客户端连接

时间:2017-12-05 17:03:00

标签: c# asp.net asp.net-core signalr

我正在遵循本指南from MS。我创建了一个MVC Core 2.0应用程序并添加了包参考

<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.0.0-alpha1-final" />

我配置了Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddSignalR();
    }

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        ...
        app.UseSignalR(routes =>
        {
            routes.MapHub<Statistics>("statistics");
        });

       ...
    }

这是我的StatisticsHub:

public class Statistics : Hub
{
    public Task Send(string message)
    {
        return Clients.All.InvokeAsync("Send", message);
    }
}

从我的HomeController我有一个返回此视图的索引操作:

<script src="js/signalr-client-1.0.0-alpha2-final.js"></script>

<script>
    let connection = new signalR.HubConnection('/statistics');

    connection.on('send', data => {
        console.log(data);
    });

    connection.start()
        .then(() => connection.invoke('send', 'Hello'));
</script>

我也尝试过包括 <script src="js/signalr-clientES5-1.0.0-alpha2-final.js"></script>客户,但没有区别。

我启动应用程序,firefox启动,这就是控制台中发生的情况: Errors

我一步一步地按照指南操作,我不知道为什么它没有连接。

1 个答案:

答案 0 :(得分:0)

尝试以下

[HubName("Statistics")]
public class Statistics : Hub
{
    public Task Send(string message)
    {
        return Clients.All.InvokeAsync("Send", message);
    }
}

脚本

<script>
        $.connection.hub.url = "http://localhost:xxxx/signalr";
        var statisticsHub = $.connection.Statistics;
    </script>

或者

<script>
    let connection = new signalR.HubConnection('http://localhost:xxxx');

    connection.on('send', data => {
        console.log(data);
    });

    connection.start()
        .then(() => connection.invoke('send', 'Hello'));
</script>

其中“xxxx:是端口号