【问题标题】:SignalR configuration in Asp.Net CoreAsp.Net Core 中的 SignalR 配置
【发布时间】:2018-05-22 19:26:01
【问题描述】:

我很难找到如何在带有 SignalR 的 Asp.Net Core 中将值配置为 ConnectionTimeoutDisconnectionTimeout。在 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 中。但主要问题是 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; }
    }

但是仍然没有设置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 对象中仍然没有想要的选项。我错过了什么?

【问题讨论】:

  • 在你的Startup.cs文件中,当你调用AddSignalR(options =&gt; ...)时,你可以配置你想要的设置。
  • 是的,你是对的,但你知道我可以在哪里设置 DisconnectionTimeout 吗?因为这里我没有这个可能性。
  • 它回答了我的问题,但并不完全。仍然缺少请求的配置选项。

标签: c# asp.net-core signalr


【解决方案1】:

Startup.cs 中寻找ConfigureServices 方法,那里你需要添加 services.AddSignalR()Configure方法中配置路由。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-13
    • 2019-06-15
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多