簡體   English   中英

SignalR Core無法從JS客戶端連接

[英]SignalR Core can't connect from JS client

我正在關注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啟動,這就是控制台中發生的事情: 錯誤

我一步一步地遵循指南,我不知道為什么它沒有連接。

請嘗試以下方法

[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:是端口號

如果您有一個隔離的客戶端,則需要啟用跨源。

在您的啟動ConfigureServices方法中,添加services.AddCors() ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM