[英]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.