Почему мой веб-сокет не получает фреймы? - PullRequest
0 голосов
/ 18 января 2019

Веб-приложение связывается со сторонним программным обеспечением на стороне сервера через веб-сокет в следующей настройке:

regular setup

В целях тестирования я настроил следующую настройку на одной машине (которая в отношении моей проблемы, описанной ниже, ведет себя так же):

test setup

Обычная настройка работает до тех пор, пока начальное соединение выполняется с протоколом wss, а не с ws. В этом случае отправляется фиксированное количество кадров, затем стороннее программное обеспечение на стороне сервера отправляет некоторые кадры обратно, и «диалог» продолжается (как отображается средствами разработки Chrome).

При использовании ws в любой настройке через веб-сокет отправляется только начальное фиксированное количество кадров, но ничего не возвращается.

Чтобы проанализировать проблему, я настроил в IIS трассировку невыполненных запросов для регистрации всего при каждом перезаписи URL. Один заметный аспект, который я могу распознать в журналах, состоит в том, что второй журнал перезаписи URL (тот, что ближе к стороннему серверу), кажется, показывает мне, как ответ отправляется обратно (начиная со строки типа WEBSOCKET_WRITE_FRAGMENT_START), тогда как при В этой точке первый журнал перезаписи URL указывает на ошибку ввода-вывода («Операция ввода-вывода была прервана из-за выхода из потока или запроса приложения (0x800703e3)»).

Почему ответ через веб-сокет не проходит?

Некоторые дополнительные примечания:

  • У меня нет понимания связи через веб-сокет. Модуль в веб-приложении, использующий веб-сокет, представляет собой черный ящик, предоставленный той же третьей стороной, что и сервер.
  • Все брандмауэры, настройки которых я могу просмотреть на задействованных машинах, отключены.
...