Применяем расширенные настройки транспорта¶
Теперь заменим строку с app.MapHub на следующее.
app.MapHub<LearningHub>("/learningHub", options =>
{
options.Transports = HttpTransportType.WebSockets | HttpTransportType.LongPolling;
options.CloseOnAuthenticationExpiration = true;
options.ApplicationMaxBufferSize = 65_536;
options.TransportMaxBufferSize = 65_536;
options.MinimumProtocolVersion = 0;
options.TransportSendTimeout = TimeSpan.FromSeconds(10);
options.WebSockets.CloseTimeout = TimeSpan.FromSeconds(3);
options.LongPolling,PollTimeout = TimeSpan.FromSeconds(10);
Console.WriteLine($"Authorization data items: {options.AuthorizationData.Count}");
});
Это настройки транспорта, которые можно изменить. Разберем подробнее1:
Transports— указываем, какие транспортные механизмы доступны. По умолчанию доступны вебсокеты, SSE (server-sent events) и long-polling запросы. В примере мы указали, что можно использовать только вебсокеты и long-polling. Объединяются значения через побитовое ИЛИ, по принципу флагов;CloseOnAuthenticationExpiration— нужно ли закрывать соединение после окончания действия аутентификации. Еслиtrue— соединение закроется, еслиfalse— соединение будет оставаться открытым;ApplicationMaxBufferSize—размер буфера уровня приложения, по умолчанию 65Кбразмер буфера данных, отправляемых приложением; после заполнения буфера активизируется логика замедления (backpressure);TransportMaxBufferSize—размер буфера уровня транспорта, по умолчанию 65Кбразмер буфера данных, считываемых приложением; после заполнения буфера активизируется замедление (backpressure);MinimumProtocolVersion— минимальная версия протокола, поддерживаемая сервером. Если задано значение 0, принимается любая версия протокола;TransportSendTimeout— таймаут выполнения отправки. После превышения этого периода соединение закрывается.
Специфические настройки вебсокетов и лонгполлинга можно найти в документации.
Последнее обновление :
16 июня 2023 г.
Дата создания : 10 февраля 2023 г.
Дата создания : 10 февраля 2023 г.