Конфигурация SignalR в Asp.Net Core - PullRequest
0 голосов
/ 22 мая 2018

У меня есть проблема, чтобы найти, как настроить значения как 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.Я что-то упустил?

1 Ответ

0 голосов
/ 22 мая 2018

В 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

...