Как подключиться или отправить запрос с использованием ClientWebSocket и HttpClient (GET, POST) с выбором SourceIP в C#

Что работает

  • выполняю HTTP GET POST запросы к серверу https://poloniex.com/tradingApi и https://poloniex.com/public
  • выполняю подключения к Websocket wss://api2.poloniex.com
  • полностью работает система переподключений (в случае ошибок)

Какие ограничения

  • для HTTP - 6 запросов в секунду (на деле около 5), если больше, то HTTP запрос отсеивается (error 422)
  • для Websocket - около 3 подключений, с отправкой команды. Тут дела обстоят хуже, при превышении лимита включается защита от DDOS с временем блокировки более 1 минуты (429 Too Many Requests)

Проблема

  • имеется около 1000 клиентов, из-за ограничения количества запросов, время перезагрузки системы составляет около 20 минут
  • в определенные моменты приходится отправлять до 300 запросов в секунду. Соответственно они растянуться на одну минуту (я установил скорость 5 запросов в секунду) и многие из них уже будут не актуальны.

Что имеется

VPS сервер с 64 IP адресами

Вопрос?

Как правильно выполнить подключение/запрос через ClientWebSocket/HttpClient с выбором "Soure IP"?

PS:

Есть решение для .NET Core 2.1 (SocketsHttpHandler)
Но я использую .NET Framework 4.7.2
Если есть готовые решения прошу подсказать.


Ответы (0 шт):