Как подключиться или отправить запрос с использованием 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
Если есть готовые решения прошу подсказать.