【发布时间】:2018-07-19 11:10:14
【问题描述】:
我正在尝试将 SignalR 与核心 2.0 一起使用。如果我将传输设置为 LongPolling 它可以工作,但我会收到有关超时的警告。我正在尝试将它与 WebSockets 一起使用,但我得到了
WebSocket 未处于 OPEN 状态
我检查了很多类似的问题,其中大多数是由于系统限制,但我使用的是 Windows 10 和 Chrome v.67。 我认为问题出在 Startup.cs:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors("CorsPolicy");
app.UseSignalR(routes =>
{
routes.MapHub<NotifyHub>("/notify");
});
}
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyMethod()
.AllowAnyHeader()
.WithOrigins("http://localhost:52170/");
}));
services.AddSignalR();
}
前端(TypeScript):
ngOnInit() {
let builder = new HubConnectionBuilder();
this.hubConnection = builder.withUrl("http://localhost:52170/notify", HttpTransportType.WebSockets).build();//'http://localhost:1874/notify').build();
this.hubConnection.serverTimeoutInMilliseconds = 5000;
this.hubConnection
.start()
.then(() => console.log('Connection started!'))
.catch(err => console.log(err)); //'Error while establishing connection :('));
console.log(this.hubConnection);
this.hubConnection.onclose = e => {
this.hubConnection.start();
}
}
我从浏览器收到这两条消息:
信息:WebSocket 连接到 ws://localhost:52170/notify?id=SJ4cb49oWZtL6lIt4cqhKg WebSocket 不是 处于打开状态
【问题讨论】:
标签: c# asp.net-mvc sockets asp.net-core signalr