Я создал клиент SignalR с точечной сетью, используя https://learn.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr Использование соединения StartAsync занимает более 1 секунды. Это слишком долго. Как сократить время запуска? Любые параметры для настройки?

0
Valery Yegorov 13 Дек 2019 в 22:49
1) Ссылка , которым вы поделились, предназначен для ASP.NET SignalR, а не для ASP.NET Core SignalR. 2) Как вы измеряете время, необходимое для выполнения кода, и обнаруживаете, что оно занимает более 1 секунды? 3) Пожалуйста, проверьте, какой транспорт (WebSockets, Server-Sent Events и Long Polling) используется.
 – 
Fei Han
16 Дек 2019 в 12:28

1 ответ

Спасибо за ответ и исправленную ссылку. Решение использует ASP.NetCore, а транспорт настроен на использование ТОЛЬКО WebSocket. Сторона сервера (запуск/настройка)

app.UseEndpoints(endpoints =>
  {
    endpoints.MapHub<LiveHub>("/signalr/livehub", options =>
      {
        options.Transports = HttpTransportType.WebSockets;
      });
  });

Консольное клиентское приложение было построено в соответствии с: https://github.com/ aspnet/AspNetCore.Docs/tree/master/aspnetcore/signalr/dotnet-client/sample/SignalRChatClient Под клиентом

connection = new HubConnectionBuilder()
  .WithUrl("http://localhost:xxxx/signalr/livehub", options =>
  {
    options.SkipNegotiation = true;
    options.Transports = HttpTransportType.WebSockets;
  })
  .Build();

Время выполнения кода рассчитывалось на клиенте, на

await connection.StartAsync();

С несколькими тестовыми примерами среднее время соединения колеблется от 900 мс до 1200 мс. Это очень долго.

1
usvd 17 Дек 2019 в 03:56