Я пытаюсь загрузить наше веб-приложение, которое представляет собой игровое приложение в реальном времени, написанное с использованием кода с использованием ядра asp.net и технологии сигнализатора.
Мы используем JMeter WebSocket Samplers от Peter Doornbosch для связи через websocket. Но мы не можем получить никаких сообщений от сервера сигнализатора (кроме ping-кадров из слоя websocket).
Текстовое сообщение, которое я пытаюсь прочитать, представляет собой широковещательную рассылку от сервера всем подключенным клиентам, поэтому я вижу, что сообщение получено клиентами браузера, но клиент jmeter не получает его.
Я прослушал трафик как для браузера, так и для клиента jmeter и обнаружил, что сообщения сервера вообще не принимаются в клиенте jmeter, а в браузере.
Поэтому мне кажется, что на начальном этапе установления соединения мне не хватает какого-либо параметра или заголовка, поэтому сервер не может обнаружить клиент jmeter, даже если в это время соединение webSocket открыто и на клиент jmeter поступает пинг уровня веб-сокета.
Что сделано в Jmeter: -
- HTTP-запрос к конечной точке сервера сигнализатора и получение идентификатора соединения в качестве ответа, извлеките его и сохраните в переменной jmeter.
- Использование Single Write Sampler для установки нового подключения к веб-сокету с использованием идентификатора соединения, полученного на шаге 1, и отправка текстового фрейма для установки протокола данных Signalr "{" protocol ":" json "}". (Скопировано, как видно в консоли разработчика браузера)
- Используя существующее соединение, еще один сэмплер с однократной записью для отправки текста, вызывающего функцию-концентратор-сигнализатор, для добавления в группу-сигнализатор. Здесь в функции-концентраторе есть широковещательная передача, записанная для всех подключенных клиентов.
- Использование сэмплера Single Read Sampler для чтения широковещательной рассылки с сервера, упомянутого в шаге 3. Этот шаг всегда приводит к ошибке времени ожидания ответа в jmeter.
Кто-нибудь, имеющий опыт работы с jmeter и singnalr, используя webSocket в качестве транспорта, может пролить немного света?
Любые предложения приветствуются.
Заранее спасибо