Сегодня будем разбираться с тем, как делать из обычного коннектора OsEngine — коннектор, доступный для подключения PROXY. Это иногда нужно для мультиконнекторов в случае, если брокер блокирует множество запросов по IP-адресу.
PROXY сервер в данном случае позволяет подменять IP-адрес нашего ПК, чтобы при одновременной торговле через десятки и сотни счетов нам не прилетел бан по IP-адресу за слишком частое обращение к серверам брокера.
*серия постов «Коннекторы к OsEngine» — для программистов. Если Вы пользуетесь OsEngine, как пользователь, можете дальше не читать.
1.Идём в разрешения коннектора, в который хотим добавить возможность настраивать Proxy.
В нашем случае это будет ALOROpenApi:
Включаем разрешение IsSupports_ProxyFor_MultipleInstancesвTRUE:
2. Открываем исходники коннектора:
3. Модернизируем метод Connect. Сохраняем Proxy.
Метод Connect вызывается каждый раз, когда хранилище коннекторов хочет, чтобы конкретная реализация коннектора начала процедуру подключения к бирже.
В метод Connect, если Вы настроили ProxyHub, будет подаваться WebProxy –класс, содержащий рабочие адреса и ключи для доступа к Proxy.
- Создаём поле private WebProxy _myProxy. В него мы будем сохранять на каждом подключении коннектора прокси, который нам передала программа.
- Сам WebProxy передаётся в коннектор через параметр метода Connect, либо не передаётся, тогда в него будет передан null.
- В самом начале метода Connect нужно сохранять прокси в ранее выделенное под это поле.
4. Добавляем Proxy в Rest запросы через RestClient.
На примере запроса бумаг в ALOR:
Добавляем блок кода, который проверяет наличие прокси. И если Proxy есть, устанавливаем его в клиент. После этого у запроса будет подменён IP.
5. Добавляем Proxy в Rest запросы через WebRequest.
Если в Вашем коннекторе использован WebRequest, в него надо загрузить Proxy следующим образом:
6. Добавляем Proxy в Rest запросы через HttpClient.
HttpClient нужно создавать определённым образом, чтобы во время создания в него загружался Proxy. Это чуть сложнее, но необходимо, т.к. HttpClient используется потом многократно.
Смотрим на примере коннектора BingXServerSpot: 
- Процедура создания HttpClientбез Proxy.
- Процедура создания HttpClient, используя Proxy.
7. Добавляем Proxy во время создания WebSocket.
Каждому сокету, создаваемому внутри коннектора, необходимо указать Proxy.
Пример смотрим в AlorServer:
Комментарии открыты для друзей!

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php
Подробнее https://smart-lab.ru/compan...








