Asp.Net 核心中的 SignalR 配置



我在查找如何将值配置为ConnectionTimeoutDisconnectionTimeoutAsp.Net 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 核心Global.asax不再存在,据我了解,配置应该放在Startup.cs中。但主要问题是 Microsoft.AspNetCore.SingalR 中的 GlobalHost 是未定义的。那么我应该如何添加配置呢?

编辑:

我正在使用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; }
}

但是仍然没有设置断开连接超时的选项,同样在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 对象中仍然没有所需的选项。我错过了什么?

Startup.cs查找ConfigureServices方法,您需要添加services.AddSignalR()Configure方法中配置路由。

您可以在下面的 msdn 链接中找到更多信息 https://learn.microsoft.com/en-us/aspnet/core/signalr/get-started?view=aspnetcore-2.1&tabs=visual-studio

最新更新