У меня есть проблема, чтобы найти, как настроить значения как ConnectionTimeout
, DisconnectionTimeout
в Asp.Net Core с SignalR.В MVC вы использовали файл Global.asax, и там конфигурация располагалась так:
using System;
using Microsoft.AspNet.SignalR;
namespace Wozkowi
{
public class Global : System.Web.HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
// Make connections wait 50s maximum for any response. After
// 50s are up, trigger a timeout command and make the client reconnect.
GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(20);
GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(5);
}
}
}
Но в Asp.Net Core Global.asax
больше не существует, и, как я понимаю, конфигурация должна быть помещена в Startup.cs
.Но главная проблема - это GlobalHost в Microsoft.AspNetCore.SingalR, он не определен.Итак, как мне добавить конфигурацию?
Редактировать:
Я использую Microsoft.AspNetCore.SignalR v.1.0.0-rc1-final.Поэтому во время services.AddSignalR()
я могу передать объект:
public class HubOptions
{
public HubOptions();
public TimeSpan? HandshakeTimeout { get; set; }
public TimeSpan? KeepAliveInterval { get; set; }
public IList<string> SupportedProtocols { get; set; }
public bool? EnableDetailedErrors { get; set; }
}
Но все еще нет возможности установить DisconnectionTimeout, также во время api.UseSignalR()
этот объект параметров может быть передан:
public class HttpConnectionOptions
{
public HttpConnectionOptions();
public IList<IAuthorizeData> AuthorizationData { get; }
public TransportType Transports { get; set; }
public WebSocketOptions WebSockets { get; }
public LongPollingOptions LongPolling { get; }
public long TransportMaxBufferSize { get; set; }
public long ApplicationMaxBufferSize { get; set; }
}
Но по-прежнему нет желаемой опции даже в объекте LongPollingOptions.Я что-то упустил?