Нет пинга из веб-сокета в AspNetCore - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь внедрить websocket ядра asp.net и обнаруживаю, что не могу заставить сервер пропинговать клиента, чтобы он подтвердил поддержку в любой момент времени.Браузер никогда не регистрирует ping-фреймы.

В целях тестирования я в основном копирую код Microsoft, поэтому мой код похож на это в демоверсии: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-2.0, что в основном означает, что конфигурация для веб-сокета:

        var webSocketOptions = new WebSocketOptions()
        {
            KeepAliveInterval = TimeSpan.FromSeconds(1),
            ReceiveBufferSize = 4 * 1024
        };
        app.UseWebSockets(webSocketOptions);

Я попытался выполнить развертывание как на IIS Express, так и на локальном IIS.Пока все остальное работает нормально, все фреймы данных записываются хорошо.Для мониторинга я использую инструменты разработчика Chrome.

Используемые версии - AspNetCore.All (2.0.7) -> WebSockets (2.0.2)

Я что-то не так делаю или это APIсломан?

1 Ответ

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

Здесь есть несколько уроков:

  1. Chrome DevTools не будет отображать ping-кадры веб-сокета
  2. KeepAliveInterval на момент написания этой статьи не работает

Комуманипулировать интервалом пинга, который нужно сделать в настройках IIS, например:

<system.webServer>
   <webSocket
      enabled="true" 
      receiveBufferLimit="4194304"
      pingInterval="00:01:00">
   </webSocket>
</system.webServer>

Ссылки:

  1. https://github.com/aspnet/Home/issues/2464#issuecomment-390683383
  2. https://docs.microsoft.com/en-us/iis/configuration/system.webserver/websocket
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...